
On Fri, Jan 28, 2011 at 4:24 PM, Anthony Williams
Edward Diener
writes: On 1/27/2011 12:52 PM, Beman Dawes wrote:
Independent of modularization, ryppl, or anything else, is it time to start a discussion on the main list about moving to Git?
I hope such a discussion entails a very strong justification of why Git is better than Subversion. I still do not buy it, and only find Git more complicated and harder to use than Subversion with little advantage. I fear very much an "emperor's new clothes" situation where everyone is jumping on a bandwagon, because it is the latest thing to do, but no one is bothering to explain why this latest thing has any value to Boost.
Indeed. Also, why git rather than another DVCS such as Mercurial or bazaar? Personally, I find Mercurial much easier to use than git, and it has the same major advantages (which are essentially common to all DVCS systems).
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: 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. 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. 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. 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.)
Also, Mercurial works better on Windows than git does in my experience --- the git port for Windows is relatively recent, whereas Mercurial has supported Windows for a while. Since many of the boost developers use Windows I would have thought this was an important consideration. I haven't any personal experience of bazaar, so don't know how it fares in this regard.
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 chief advantage of a DVCS over subversion is that you can do local development with full version control (including history) whilst offline, and then push/pull when online. Also, you can do incremental local commits, so you have the advantage of VC, without pushing unfinished changes to the main repository. Branching and merging tends to be easier too.
+1 -- Dean Michael Berris about.me/deanberris