Introduction to Mercurial, or "Why we're switching from SVN no matter what"

Uploaded on

An introduction and justification of why we're moving away from SVN and towards mercurial.

An introduction and justification of why we're moving away from SVN and towards mercurial.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. Getting in touch with your Mercurial side: How you’ll be happier, more productive, and less ragey. Adam Pah With contributions from: Dan McClary Irmak SirerMonday, January 28, 13 1
  • 2. So what is Mercurial? • Mercurial is a Distributed Version Control System (DVCS) • Mercurial (along with Git and Bazaar) is a part of the next generation version control systems • These systems have been designed to address problems, annoyances, and failings in SVNMonday, January 28, 13 2
  • 3. So why are we switching? • SVN is frustrating when you try to use it in a more advanced fashion or in a large collaboration. • Sometimes it’s just frustrating when it’s only you. • SVN is slow once repositories get large. • This leads to using it less or only once a stopping point in the work is reached, defeating the purpose of version control. • SVN is not smart. • SVN could not merge it’s way out of a paper bag, let alone keep track of constantly changing files. • Did I mention that SVN is frustrating?Monday, January 28, 13 3
  • 4. Differences between SVN and Mercurial: Paradigm SVNSource: http://www.hginit.comMonday, January 28, 13 4
  • 5. Differences between SVN and Mercurial: Paradigm MercurialSource: http://www.hginit.comMonday, January 28, 13 5
  • 6. Differences: Nitty Gritty • SVN keeps revisions of each commit • Mercurial keeps changesets at each commit • So what is the difference? • If you and I were both working on the same repository, we both makes lots of changes and go our own way. • When we inevitably have to put everything back together SVN looks at the both of our last revisions and tries to mash them together. • This typically does not work. • Mercurial keeps track of every change in each file. • When we merge back together it just sums all the changes in the changesets on its own and applies them the best it can.Monday, January 28, 13 6
  • 7. Differences: Nitty Gritty • But wait a minute!!!! Merging is the devil! SVN taught me that over and over again. • Mercurial is different, it accepts merging and does it intelligently. • This is for two main reasons: • Keeping track of changesets is one integral reason, it has more of an idea what has changed • Separating commits from pushing to others forces it to have a more robust tool set to merge. Branching and merging are the common tools of a Mercurial workflow.Monday, January 28, 13 7
  • 8. Mercurial Workflows All aloneMonday, January 28, 13 8
  • 9. Mercurial Workflows Anarchy Irmak Adam DanMonday, January 28, 13 9
  • 10. Mercurial Workflows Centralized Store Text Irmak Dan AdamMonday, January 28, 13 10
  • 11. A config all to myself • Just like vi or emacs, mercurial has a configuration file in your home directory • You can edit this file at ~/.hgrc • You will need to set your username and e-mail in it (Mercurial won’t work without it) • You can also enable new extensions in this file, such as hg fetch or hg convertMonday, January 28, 13 11