changeset 6:a942bf7bc2ab

Add links for Git/Bzr etc. and figures for repository size.
author Jim Hague <jim.hague@acm.org>
date Fri, 06 Mar 2009 21:17:07 +0000
parents 2ec53c0ed5d8
children 8660df02d8a9
files Hg.txt
diffstat 1 files changed, 22 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/Hg.txt	Fri Mar 06 14:07:34 2009 +0000
+++ b/Hg.txt	Fri Mar 06 21:17:07 2009 +0000
@@ -39,14 +39,15 @@
 how do you cope without the central server forcing ordering onto the
 changes?
 
-Since then I've started using Mercurial. Mercurial is a DVCS. It's one
-of three DVCSs that have gained significant popularity in the last few
-years, the other two being Git and Bazaar. I switched a significant
-work project over to Mercurial (from Subversion) over a year ago,
-because a customer site required on-site work but could not allow
-access back to the company VPN. I chose Mercurial for a variety of
-reasons which I won't bore you with here. If you must know, see the
-box.
+Since then I've started using Mercurial
+(http://www.selenic.com/mercurial). Mercurial is a DVCS. It's one of
+three DVCSs that have gained significant popularity in the last few
+years, the other two being Git (http://git-scm.com) and Bazaar
+(http://bazaar-vcs.org/). I switched a significant work project over
+to Mercurial (from Subversion) in mid-1997, because a customer site
+required on-site work but could not allow access back to the company
+VPN. I chose Mercurial for a variety of reasons which I won't bore you
+with here. If you must know, see the box.
 
 What I want to do in this article is give you an insight into how a
 DVCS works. OK, so specifically I'm going to be talking about
@@ -99,11 +100,12 @@
 
 This creates the repository root in the current directory.
 
-Like CVS with its CVS directory and Subversion with its .svn
-directory, Mercurial keeps its private data in a directory. Mercifully
-there is only one of these, in the top level of your project. And
-rather than holding details of where the actual repository is to be
-found, the .hg directory holds the entire repository.
+Like CVS (http://www.nongnu.org/cvs/) with its CVS directory and
+Subversion (http://subversion.tigris.org/) with its .svn directory,
+Mercurial keeps its private data in a directory. Mercifully there is
+only one of these, in the top level of your project. And rather than
+holding details of where the actual repository is to be found, the .hg
+directory holds the entire repository.
 
 Next you need to specify the files you want Mercurial to track.
 
@@ -509,8 +511,13 @@
 Both the differences between successive versions and the periodic
 complete versions of a file are compressed before storing. This is
 surprisingly effective at minimising the storage requirements this
-entire history of your project. <!!!Comparison of .svn space
-requirements for Waldo>.
+entire history of your project. I have a small Java project handy,
+comprising a little over 300 source modules. There are 5 branches plus
+the mainline, and some 1920 commits in all. A Subversion checkout of
+the current mainline takes 51Mb. Converting the project to Mercurial
+yields a Mercurial repository that takes 60Mb, so a little
+bigger. Remember, though, that the Mercurial repository includes not
+just the working copy, but also the entire history of the project.
 
 Any point in the evolution of a revlog can be uniquely identified with
 a nodeid. This is simply the SHA1 hash of the current file contents