Getting in touch with your Mercurial side:       How you’ll be happier, more productive,       and less ragey.       Adam ...
So what is Mercurial?       • Mercurial is a Distributed Version Control System (DVCS)       • Mercurial (along with Git a...
So why are we switching?       • SVN is frustrating when you try to use it in a more advanced fashion or in a         larg...
Differences between SVN and Mercurial: Paradigm       SVNSource: http://www.hginit.comMonday, January 28, 13              ...
Differences between SVN and Mercurial: Paradigm        MercurialSource: http://www.hginit.comMonday, January 28, 13       ...
Differences: Nitty Gritty       • SVN keeps revisions of each commit       • Mercurial keeps changesets at each commit    ...
Differences: Nitty Gritty       • But wait a minute!!!!         Merging is the devil!         SVN taught me that over and ...
Mercurial Workflows                            All aloneMonday, January 28, 13                  8
Mercurial Workflows                            Anarchy                 Irmak      Adam      DanMonday, January 28, 13      ...
Mercurial Workflows                           Centralized Store                                  Text                   Irm...
A config all to myself       • Just like vi or emacs, mercurial has a configuration file in your home directory       • You c...
Upcoming SlideShare
Loading in …5
×

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

403
-1

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
403
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 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. 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. 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. 4. Differences between SVN and Mercurial: Paradigm SVNSource: http://www.hginit.comMonday, January 28, 13 4
  5. 5. Differences between SVN and Mercurial: Paradigm MercurialSource: http://www.hginit.comMonday, January 28, 13 5
  6. 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. 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. 8. Mercurial Workflows All aloneMonday, January 28, 13 8
  9. 9. Mercurial Workflows Anarchy Irmak Adam DanMonday, January 28, 13 9
  10. 10. Mercurial Workflows Centralized Store Text Irmak Dan AdamMonday, January 28, 13 10
  11. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×