DistributedSourceCodeManagement

What Martin Langhoff explained to me at the recent November CafeConf 2006 BuenosAires OpenSource gathering, is that Git (especially when aided in usability by Cogito and/or GUIs if you need them) is vastly superior to the "old style" VersionControlSystem like CVS and SVN, because:

  • It distinguishes between committer and author roles
  • Check out is called clone, because you check out the whole history of the source code tree
  • You don't need a server (unless you need a server)
  • Commits are local! So don't be afraid to spend them!
  • When you want to publish your commits, you ask a commiter to accept your commits on a centralized published source code tree, with the push command. So you can fork without forking, and commit without committing, and then the central group takes what they need.
  • You can truly merge often and build frequently, both individually and in a group.
  • All these things are much harder to do with CVS and SVN.

Other tools, apart from Git and its family (Cogito, etc.) are: