Mercurial > CVu-Mercurial
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.