3 ms·
I agree with you that the two projects have different philosophies on version control, but I'd like to offer some corrections: 1. Both Mercurial and Git use th
by brodie 17y ago
I agree with you that the two projects have different philosophies on version control, but I'd like to offer some corrections:
1. Both Mercurial and Git use the same history model; both have DAGs and changesets.
2. The dirstate is an internal format, and it's analogous to Git's index. You are right though, that Git allows you to manage it manually is a big difference from Mercurial.
I think Mercurial tends to be more conservative in what it allows; it discourages history editing, and it tries to be similar to Subversion and CVS in terms of UI. Git, on the other hand, provides all the power user features - like commit amendment, rebasing, and index management - up front.
- driax 17y agoWhile I agree Mercurial generally is more conservative I also believe they do this because they have a well used extension system. So you can't really say they don't support power user features when many of them are only a configuration option away. The real difference I thing is the way they manage branches, because this is part of the repository itself, thus changing it through extensions requires everybody that pulls the repository also install this extension. And if you do this then you aren't really using Mercurial or Git, you have instead created your own DVCS.