Emanuele Aina schrieb:
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).
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html