Source control is a system for managing change in files over time. I use it for nearly everything I write or edit. It just makes sense once you start to do it. You can see the changes over time, roll back to previous versions, recover something you lost, etc etc etc. This document describes the scheme I use to manage my software, website, UNIX setup, and just about everything else.
Basic Overview
First, I will simply refer to the experts because they know much more about it than I do. I use perforce for all of my source revision control. It is a normally expensive commercial product but they offer licenses for free for open-source development. Nearly everything I do is under the MIT license, so I opted to use it. It is highly superior to everything else I’ve used, especially with regard to branching, which I will describe in full below.
Details
I have one perforce server on my system with one repository. It contains several depots that I have separated by branching policy and content. I have four depots:
- src - source code
- www - websites
- usr - personal files
- doc - all other general documents
Each depot has it’s own branching policy:
- src - branch each release version, work off of dev branch.
- www - no branching at all, for now.
- usr - decided by user.
- doc - as appropriate, generally none.
As such, the general structure of the repository looks like:
//src/$pkg/dev/… /$ver/… //usr/$user/… //www/$domain/… //doc/…
Requirements:
- perforce daemon, client, and license.
Compatibility
Perforce runs nearly everywhere.
Code
There is no code. This is mainly a process document.
Crontab
None
- TODO: finish