3. CVS Shortcomings
Network connectivity required
Lack of support for renaming/moving
Lack of atomic commits
Single point of failure
Expensive branch operations
Day-long merges
2010.04.05 3
4. CVS Replacements
Subversion (2000) - svn
● “CVS done right”
Git (2005) – git
● Created by Linus Torvalds for kernel
development
Mercurial (2005) – hg
● Created after Linux-Bitkeeper incident
Bazaar, darcs, monotone ...
2010.04.05 4
5. Distributed Version Control
(DVCS)
Complete, local repository
Branching & merging are trivial
Central server for sharing repositories
2010.04.05 5
6. Mercurial
mercurial.selenic.com
Changesets, not files
Mozilla, OpenJDK, OpenSolaris, Python,
Zen, OpenOffice, NetBeans
2010.04.05 6
7. Create a new repository
$ hg init demo
$ cd demo
$ ls -a
. .. .hg
2010.04.05 7
8. Add a file
$ echo "Hello world" > README
$ hg add README
$ hg status
A README
2010.04.05 8