changeset 1:608947872f72

Add intro and some minor edits.
author Jim Hague <jim.hague@acm.org>
date Thu, 11 Dec 2008 11:17:15 +0000
parents 48d338d29ce9
children ee7f1e2c01a6
files Hg.txt
diffstat 1 files changed, 29 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/Hg.txt	Thu Dec 11 10:15:27 2008 +0000
+++ b/Hg.txt	Thu Dec 11 11:17:15 2008 +0000
@@ -23,13 +23,30 @@
 Let's look into Mercurial
 -------------------------
 
-Mercurial is a Distributed Version Control System (DVCS). It's one of a
-number of DVCSs that have gained significant popularity in the
-last few years. 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.
+If you're at all interested in version control systems - and any
+software developer not using one daily is a strange beast indeed -
+you'll at least have become vaguely aware in the last few years of the
+growing maturity of the latest group of version control systems
+offering funky new stuff. These are the distributed version control
+systems (DVCS). There is more to them than just their headline
+attributes, being able to check history and do checkins while
+disconnected from a central server, but these are damm useful to start
+with.
+
+When I first heard about DVCS, it wasn't immediately obvious to me (to
+put it mildly) how they would work. After years of using a centralised
+version control system, I had rough mental model of what went on. But
+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.
 
 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
@@ -175,6 +192,7 @@
 directory a file occupies is tracked, but effectively only as a
 component of the file name.  This has the slightly unexpected result
 that you can't record an empty directory in your repository.
+
 (Footnote: I tripped over this converting a work Subversion
 repository. One possibility is to create a placemaker file in the
 directory. In the event I created the directory (which receives build
@@ -253,7 +271,8 @@
 
 More on those in a moment. First, though, I want to show you something
 you can't do in Subversion. Start with the repository with 4 changes
-we just cloned. Let's focus on the first couple of lines.
+we just cloned. I want to focus on the first couple of lines, so I'll
+wind the working copy back to the point where only those lines exist.
 
 $ hg update -r 1
 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
@@ -363,7 +382,8 @@
 $
 
 (Footnote: I'm no poet. The poem is, of course, 'Silly Old Baboon' by
-the late, great, Spike Milligan.)
+the late, great, Spike Milligan. From 'A Book of Milliganimals',
+Puffin, 1971.)
 
 Here's the ASCII art again showing what just happened. Oh, and notice
 that Mercurial has done the right thing with regard to the rename.