Search code examples
svnmercurial

Have you converted from subversion to mercurial? Was it worth the effort?


I am in the process of knowing Mercurial versioning system better, and I am considering convert from SVN.
Anyone already converted? Was that difficult for you and your team to switch? Can you give any advice to stay with SVN or go for Mercurial?


Solution

  • I don't have experience with mercurial (use git instead) but the difference in experience between a good DVCS like mercurial or git vs. svn is something that you truly can't go back from once you've gotten past the learning curve.

    • Local commits free up your workflow, your approach to coding features determines when you commit instead of your commits affecting how you work.
    • Svn's linear revision numbers are -bad-. Commits (especially with branches) simply do not correspond well to a simple incrementing mapping.
    • Local branches make compartmentalizing features much easier and better, prototyping becomes much simpler.
    • (only slightly related, but) Working offline tends to allow you to make changes faster than your competitors.

    I had a job recently that involved going back to using a centralized svn repository after using git for a year or two. I approached it by using the git-svn bridge, and found that I had great control over the commits compared to svn, and could make the commits and branches sit, roll over, and play dead in ways that gave me a useful advantage over my svn using co-workers, in addition to the large volume of commits that I made by comparison because of the very granular and frequent nature of doing local commits. It was a great benefit.

    I really really recommend giving yourself some time with a DVCS.