Re: [VOTE] git versus mercurial (for DragonflyBSD)
- From
David Soria Parra <sn_@gmx.net>
- Date
- Oct 27, 2008, 11:42 UTC
- Message-ID
- <4905A932.2030506@gmx.net>
- In-Reply-To
- <1225100597.31813.11.camel@abelardo.lan>
Emanuele Aina schrieb:
Show 15 quoted lines
> Jakub Narebski precisò: > >>> What do you mean by "cleaner design"? >> Clean _underlying_ design. Git has very nice underlying model of graph >> (DAG) of commits (revisions), and branches and tags as pointers to this >> graph. > > Just for reference, the abstract history model of Mercurial and GIT is > the same, a DAG of changesets identified by their cryptographic hash as > designed for Monotone, which can be considered the parent of both. > > GIT and Mercurial then differs in how this abstract model is written to > disk, with different tradeoffs in terms of performances and how easily a > specific feature can be implemented, but there is no reason something > can be done in GIT but not in Mercurial or viceversa.
Yes, it's the same: a DAG with hashes. But there are limitations due to the implementation (and not the design). Just as a bad and completely useless example (don't start to argue, I know it's nothing someone would like to have): you cannot force mercurial to merge two revisions and create a merge commit if one is the others ancestor,which is possible in git with git --no-ff. In addition they differ in some other ways: Mercurial doesn't have an index to stage commits, which is something that git has and allows very powerful features (such as git add -i, etc).