tags:

views:

2399

answers:

4

I have a medium sized team of developers who moved to Subversion last December from VSS and I wanted to hear from people who have used both Mercurial and Subversion and get their feedback.

What do they really like about Mercurial? What sucks? Is there a better open source tool? I didn't really want to put my devs through the whole source control migration thing again unless it is really worth it.

Thanks in advance!

+6  A: 

See:

For the actual migration process, see How to migrate/convert from SVN to Mercurial on Windows.

Michael Myers
The HgInit site is more than just a bit biased; it compares implementation details of several systems as if it were the fundamental difference between a DVCS and central VCS. It only shows a subset of the real use cases of version control systems and on top of that assumes everybody uses small repositories and working copies that you always want to use completely (never a subset).
Bert Huijben
+5  A: 

The Python developers are contemplating a conversion from Subversion to a DVCS. In the PEP linked above, you can find a comparison of how to do various tasks in svn, bzr, hg and git and the PEP committee's reasons for choosing Mercurial.

unutbu
This PEP can't be implemented fast enough!
Santa
+4  A: 

Mercurial (like Git) is a D**VCS (meaning a **Decentralized Version Control System), which will allow you to:

  • commit much more often, since you
    • don't need a remote server
    • can publish (push/pull) only the branches/commits that you want
  • manage merges with lot less conflicts than Subversion (see Merge with Svn vs Git)

One downside is you need to rethink the way you organize your data: you cannot just put everything in one DVCS repo (because a tag would apply to the all repo even if it contains unrelated components), but you need to separate those data in coherent sub-sets.

VonC
+1. I would add one more enhancement to the merging behavior: it lets you commit *before* merge so that even if the merge does fail spectacularly, you can back up and re-try without losing your work. It makes me much more comfortable integrating changes when I know that my changes have been saved before I try to merge them.
Michael E
+7  A: 

The advantages of Subversion over Mercurial are:

  • Subversion is simpler to understand.
  • Subversion allows arbitrary metadata on files and tracks changes to it.
  • Subversion is compiled.
  • Subversion has been around longer.
  • Subversion can store binary file deltas; Mercurial stores an entire copy with each change.

I think that's about it. Migrating from Subversion to Mercurial won't be nearly as hard as getting them to use version control in the first place.

Mike DeSimone
Advantage to SVN: It supports file locking, DVCS does not.
msemack
Ah, forgot that. We discourage file locking after having a really bad time of it back on RCS.
Mike DeSimone
It's a big deal for us, because we use SVN to version our CAD drawings, which are unmergable binary blobs.
msemack
@Mike DeSimone: Why is a (D)VCS being compiled, interpreted, or executed by having hamsters in little cages making wheels roll, an advantage or a disadvantage? Isn't it just the actual speed that counts? (and don't come tell me that SVN is faster than Mercurial ; )
Webinator
@msemack: Fixed. (Hint, guys: that's why I made my answer a CW, so you can jump in and add stuff.) @Wizard: Much as I hate to admit it, there are people who think that anything that isn't compiled must be slow. (I'm not one of them.) So it's an issue when folks like that get a say. That's all.
Mike DeSimone
I'm amazed Mercurial don't do deltas o_O
Cawas