First, let me say I’m not a professional programmer, but an engineer who had a need for it and had to learn. I was always working alone, so it was just me and my seven split personalities … and we worked okey as a team 🙂 Most of my stuff is done in C/Fortran/Matlab and so far I’ve been learning git to manage it all. However, although I’ve had no unsolvable problems with it, I’ve never been “that” happy with it … for everything I cannot do, I have to look up a book. And, for some time now I’ve been hearing a lot of good stuff about Mercurial.
Now, a colleague of mine will have to work with me on a project (I almost feel sorry for him) and he’s started learning Mercurial (says he likes it more), and I’m considering the switch myself.
We work almost exclusively on Windows platform (although I manage relatively ok using Unix tools and things that come from that part of the world).
So, I was wondering, in a described scenario, what problems could I expect with the switch. I heard that Mercurial is rather more user friendly towards windows users, regarding the user interfaces.
How does it handle repositories ? Does it create them the same way as git does (just one subdirectory in a working directory) and can I just copy the whole project directory (including git repo) and just carry them somewhere with no extra thinking ? (I really liked that when I was choosing over git/svn).
Are there any good books on it that you can recommend (something like Pro Git, only for Mercurial).
What are good ways to implement Mercurial into Visual Studio/GVim for Windows, or into Windows Explorer so I can work relatively easily (I would like to avoid using the command line for everything regarding it, like in git shell).
Is there something else I should be aware of (please, on this don’t point me to other questions … they just give me a ton of info, and I’m not sure what is it that I should take as important, and what to disregard). I’m trying to cut some time, since I cannot spend all that time relearning Mercurial, like I did for git.
I’ve also heard git is c project, while mercurial is python … is there any noticeable difference in speed. git was pretty speedy … will I encounter some waiting while working.
Notice: All my projects are of let’s say, middle size … mostly numerical simulations … 10-15000 lines (medium size?)
Engineer here, too. I’ve used Mercurial, Subversion, BitKeeper, and CVS. Haven’t made it to Git yet.
Not sure what was meant here, Git and Mercurial are both command-line tools at heart.
It’s a distributed version control system (DVCS), just like Git.
Yes. Mercurial’s repository lives in a
.hgdirectory in the working directory. Also, Mercurial has a naming system in its repository to prevent filename collisions if you use it with a case-insensitive filesystem like FAT, NTFS, or HFS+.I’d recommend the web site: https://www.mercurial-scm.org/guide
There’s a tool called TortoiseHG. I can’t attest to how good it is, since I usually just use the command-line version via Cygwin.
Mercurial is pretty darn fast. I don’t know about how it stacks up with Git, but it’s a lot faster than Subversion.
Sounds like my stuff. Not counting raw data, of course.
And off topic…
I’ve been moving from Matlab to Python recently…
Just a thought.
YEARS LATER EDIT: There is a Mac DVCS tool called SourceTree which I’ve been very happy with. It supports both Git and Mercurial, and is available for free on the App Store.