This is a read-only archive. Find the latest Linux articles, documentation, and answers at the new Linux.com!

Linux.com

Better source control for your coding projects

Posted by: TravisSnoozy on March 11, 2008 05:06 AM

To clear up any misunderstandings, I'd like to touch more specifically into why Git isn't mentioned.



Across a decade-plus of coding and 3 companies, I've never used Git. I've never been part of any open source project that used Git. I've never talked with Git users, or read about Git, save to know that it's what Linus wrote after BitKeeper was snapped out from under him, and it's distributed. All in all, I think that the Git users in the crowd would probably agree that I shouldn't be writing about things I know nothing about. ;)



None of this means that Git any less of a totally awesome system. It just means I've never had to use it<a name="ts-p2-rfn1" id="ts-p2-rfn1" href="#ts-p2-fn1">*</a>. I have encountered Visual SourceSafe (blech), Perforce, and some ancient MS abomination (pre-VSS; gag-me-with-a-spoon awful) in the workplace; and SVN, CVS, monotone, and darcs in the OSS world. I fully admit that darcs is probably even less common than Git, but darcs got the mention because I've actually used it<a name="ts-p2-rfn2" id="ts-p2-rfn2" href="#ts-p2-fn2">**</a>, and I didn't hate it.



Again, I want to underscore that the thrust of the article is not about which source control system is best — that's a religious issue that I could never hope to argue. The purpose is to point out how you should use your source control system, whichever system that may be, and why you should use your system in these ways. As an exercise to my readers, you can feel free to come up with alternate example sections for each of the systems I mentioned, and verify that each point is equally relevant to development under Git as it is to development under these other systems. If the activities mentioned in the article don't make sense in Git, I'd be really interested to know why. :)



<a name="ts-p2-fn1" id="ts-p2-fn1" href="#ts-p2-rfn1">*</a> I don't learn new RCSs for fun, anymore than I learn new languages for fun. I learn them when I have to use them regularly, and I have to use SVN and Perforce far more regularly (read: daily) than I have to hack on Linux or X. Again, it doesn't make Git any less good, it just makes it less common.



<a name="ts-p2-fn2" id="ts-p2-fn2" href="#ts-p2-rfn2">**</a> This was despite my moaning about it at the time. I was very pleasantly surprised by the ease of use. Unfortunately, the "stack of patches" approach and every developer having their own branch makes me nauseous from a management standpoint. For me, it's completely counter-intuitive to keeping a single, good copy on a line of development. Personal branches are very, very easy to abuse in the non-distributed world, and I don't see how that potential for abuse can be curbed in a system that actively relies on each and every checkout being an automatic personal branch. By contrast, I recall hating my encounter with monotone.

#

Return to Better source control for your coding projects