Search

I'll be at


My Twitter

    Subscribe

    Recent entries

    No recent entries.

    Archives by subject

    Archives by date

    Sun Mon Tue Wed Thu Fri Sat
        1 2 3 4 5
    6 7 8 9 10 11 12
    13 14 15 16 17 18 19
    20 21 22 23 24 25 26
    27 28 29 30 31    
    7
    Mar

    Life after Subversion -- Mercurial!

    A note to myself: The only constant in life, Indy, is change!

    I've been using Subversion for version control for a couple of years now. It was quite a change moving from Microsoft Visual Source to Subversion. A different mind set. A different way of doing things.

    And then I read about Mercurial today.

    Mercurial is one of the new breed of version control systems.

    Its major goals include high performance and scalability; serverless, fully distributed collaborative development; robust handling of both plain text and binary files; and advanced branching and merging capabilities, while remaining conceptually simple. It includes an integrated web interface. (Wikipedia)

    Basically Mercurial moves away from the paradigm of working with centralized repositories (like CVS and SVN) to support distributed, collaborative development. And at the same time trying to be a simple-to-use system (a big challenge!).

    Mercurial


     

    There is a great little article on JavaWorld comparing different version control systems. It is quite enlightening: Subversion or CVS, Bazaar or Mercurial?

    The article explains in simple words what Mercurial is on page 4.

    Mercurial is newer open source version control system based on the distributed model. In Mercurial, as in Subversion or CVS, developers work on a local working directory. However, unlike centralized solutions, Mercurial also stores a copy of the entire project history on each developer's machine. In this way, developers can work in parallel, even without a network connection.
    ...
    Unlike Subversion, however, when you commit changes in Mercurial, you only create a new revision in your local repository (which, given Mercurial is based a distributed model, is considered to be just as good a repository as anyone else's). 

     

    Seems like an intriguing concept. I've been going through the documentation on Mercurial site and it seems to be very well documented.

    In terms of companies/projects actually using Mercurial, Sun Microsystems software (including Open Solaris and NetBeans) and Mozilla are using it to manage open-source initiatives. These are project where the need for distributed collaborative version control is quite high.

     Well... it's time to give it a try!

    Comments

    • Big Mad Kev's Gravatar Big Mad Kev said:

      I'll be interested to hear your findings matey, sound very cool :)

    • Jim Priest's Gravatar Jim Priest said:

      Looking forward to future posts about your experience!

    • Luke Hoersten's Gravatar Luke Hoersten said:

      I love Mercurial and have used it in large production settings as well as personal projects. I've written a few articles on its benefits (http://openradix.org/archives/260) and downsides (http://openradix.org/archives/349). Through I feel Mercurial is still the best way to go.

    • Indy Nagpal's Gravatar Indy Nagpal said:

      Thanks for the links Luke. Will check them out. I'm just about to start playing with it.

    • Ramesh B's Gravatar Ramesh B said:

      Lately, I've been playing with Mercurial and I'm completely sold. Currently I'm in the process of moving all my SVN repositories into Mercurial, which is piece of cake. Being a Java junkie I published my repos via Glassfish (via cgi-bin). At this point I only have good things to say :)

      I wish TortoiseHg is at par with TortoiseSVN, it still has a lot of catch up to do.

    • matt's Gravatar matt said:

      I started using mercurial for my private scripts and for blog articles in draft state before publishing. So far I'm pretty happy (I used RCS before).

      Unfortunately, tool support isn't as good as with subversion. There's an eclipse plugin already, but it isn't up to par with subversive or subclipse. As soon as this has changed, I guess many development shops will consider using mercurial if.

    • Doug's Gravatar Doug said:

      Unless I'm missing something I don't understand the advantage to distributed version control like this and Git. It just seems to increase the possibility of conflicted code.

      Being able to commit offline doesn't really make that risk any less tangible. I'm not sold.

    • Luke Hoersten's Gravatar Luke Hoersten said:

      Hey Indy,
      Just wanted to let you know that I've changed my domain name so those links will break in the future. If you don't mind updating them, you can just follow the redirects and copy those links. You can delete this post, too, then =)

      Thanks Indy!

    • Doug's Gravatar Doug said:

      Oh - now I get it!!!

      I'm using Git for a project. Going to use Mercurial for my next. I'm loving it!!!!