
On Fri, Jan 28, 2011 at 6:34 PM, Anthony Williams
Dean Michael Berris
writes: I have to be honest here and say up front that I have no idea what the features of mercurial are, so I have some questions with it in particular:
For a quick summary of the similarities and differences, see http://stackoverflow.com/questions/1598759/git-and-mercurial-compare-and-con...
Thanks for the link -- that was a pretty long accepted answer. :)
1. Does it allow for integrating GnuPG signatures in the commit messages/history? The popular way for certifying that something is "official" or "is signed off on by <insert maintainer here>" is through GnuPG PKI. This is what makes the Linux kernel dev organization more like a self-organizing matter.
Okay.
2. Does it allow for compacting and local compression of assets? Git has a rich set of tools for compressing and dealing with local repositories. It also has a very efficient way of preserving objects across branches and what not.
Mercurial does compress the repository. How it compares with git, I don't know.
Okay.
3. Does mercurial work in "email" mode? Git has a way of submitting patches via email -- and have the same email read-in by git and parsed as an actual "merge". This is convenient for discussing patches in the mailing list and preserving the original message/discussion. This gives people a chance to publicly review the changes and import the same changeset from the same email message.
From Mercurial, you can export patches to a text file containing the diffs and a few headers, and import that text file into another repo, where it preserves the commit message. Is that the sort of thing you meant?
Well, not really -- git has git-format-patch that actually crafts an appropriately encoded email message. Git actually has support for importing patches from a mail message directly.
4. How does mercurial deal with forks? In Git a repository is automatically a fork of the source repository. I don't know whether every mercurial repo is the same as a Git repo though -- meaning whether the same repository can be exposed to a number of protocols and dealt with like any other Git repo (push/pull/merge/compact, etc.)
Your local repository can push/pull from any remote repository, and you can set up a default remote repo for "hg push" and "hg pull" without a repository path. I don't know the full set of protocol options; I use local and http access.
Okay, but I think the thing I was asking was whether the same two repositories share the same history information?
I've used Msysgit for the most part, and it works very well -- actually, works the same in Linux as it does in Windows. Are we talking about the same Windows port of Git?
The old port was cygwin based, and was a real pain. I tried using msysgit and had a few problems, but it was an early version. It might be much better now. OTOH, Mercurial has always "just worked" for me, on both Windows and Linux.
Ok.
Like I said above, my personal opinion is that mercurial is easier to use. YMMV. I also know people who a big fans of bazaar, but I've never used it myself.
I agree. However since hg and git can work with each other, I don't see why using either one would be a big problem as both have a pretty similar model looking at it from the outside. I'd love to hear from someone who uses bzr though. Thanks again Anthony! -- Dean Michael Berris about.me/deanberris