Hello, On Wed, Sep 23, 2009 at 02:09:32PM +0200, Arne Babenhauserheide wrote: > Am Mittwoch, 23. September 2009 13:23:43 schrieb Sergiu Ivanov: > > Hm, I thought there would be more differences than that. Although > > from your discussion with Arne last summer I could only suppose that > > git and Mercurial are very similar in many approaches. > > They were written for the same usecase: Distributed code collaboration.
Well, yes, but wasn't CVS, for instance, created for distributed code collaboration, too? Or do I understand the word ``distributed'' wrong? > So it's natural that they are similar, but there still are significant > differences in philosophy and thus in the default workings of the commands. > > Example: > > Mercurial: All history is shared, except if you explicitely declare it > otherwise. > Git: You should specify which branch to push and pull. > > Mercurial: Make it easy to use and encapsulate dangerous functonality in > extensions. > Git: Make it super-powerful and expose all functionality to each user. > > Mercurial: Offer default shorthands and aliases for commands. > Git: Users can write their own shorthands and aliases. A very nice map of differences, thank you :-) I'll use this mail as a kind of reference for the future, if you don't mind ;-) > Example of the last: Update/checkout the latest revision of the whole repo: > > - Mercurial: hg up > - Git: git checkout . > > And for git users Mercurial offers the alias "hg checkout" which can be > abbreviated to "hg ch", as long as this abbreviation is unambigous - a rule > which is true for all commands. > > This also means, that scripts should always use the long version, because > extensions can add commands, so an abbreviation can become ambigous when you > add an extension (everything has its downside :) ). Sounds complicated, but also like it shouldn't be extremely hard to handle the problems once you know about them :-) Regards, scolobb