On 8/6/07, Jacob Rus jacobolus@gmail.com wrote:
Jeremy Wilkins wrote:
Without wishing to turn this into a which scm is best discussion, Git isn't the easiest system for non-technical users to learn - it is aimed at power users. You may end up with a situation where using the version control is harder then creating the bundle. (..)
Git has been improving very rapidly though. It is vastly easier for normal (non-power-) users than it was a year ago, and I imagine it will be still better in another year. I don't know if you've tried Git recently; if not you should give it a try. If you stick to the basics, I'd say it's about as easy as SVN. But there's of course a lot of extra power there too, if you want it.
-Jacob
There has been a lot of hype about Git lately and I don't understand why. I'm glad Allan consider Mercurial too, unfortunately some people respond "Ok, let's use Git". ;)
I read Git have slightly better performances than Mercurial, but as mercurial repos handle the complete OpenSolaris and Mozilla source trees just fine, I guess it would be good enough for the bundle repo.
Beside that, what are the advantages of Git over Mercurial? (And no, being initiated by Linus doesn't count ;)
Here are some advantages of Mercurial over Git I can see:
- Git is much more difficult to install than Mercurial. Even with MacPorts: e.g. Git needs new versions of openssh, openssl, curl, rsync, etc. and install more than 135 different commands! This take a lot of time and can be difficult if you have installed some of those outside of MacPorts. On Tiger, the only thing you need before installing Mercurial is upgrading Python to 2.4+. Then it takes 20 sec.
- Documentation: Git install a man page for each command (~135) and have no user manual, not the easiest way to find information when you need it, IMO. Mercurial has 3 man pages and complete doc, check the [official site][1] and the unofficial [hg book][2] (check the comparison between Mercurial and other systems, BTW).
- I consider myself a power user and Git is definitely more difficult to learn and use than Mercurial. The all "index tree" concept adds unneeded complexity, IMHO. (Allan has a hard time making a Git bundle for TM because of that. See the [qit bundle thread][3].) I think that if git is chosen for TM bundles, there will be more git related questions on this list than anything else.
- I read that a Git repository requires frequent manual "repacks" of its metadata. Mercurial repository needs no maintenance.
- AFAICT, Mercurial's source code is MUCH more clean and readable (and I'm not a big fan of Python).
The Mercurial bundle could be improved, and I guess there would be more people contributing if TM uses Mercurial, but it's working fine like it is now. (I'll commit a bunch of fixes and improvements soon BTW.)
@Jacob: I understand Git is improving rapidly, but so is Mercurial...
All I meant to say was: Be sure to compare both systems.
[1]: http://www.selenic.com/mercurial/wiki/ [2]: http://hgbook.red-bean.com/ [3]: http://lists.macromates.com/pipermail/textmate/2007-August/021412.html
-- FredB