Marc Feeley wrote:
On 25-May-07, at 8:52 AM, Aycan iRiCAN wrote:
.. It's distributed, interactive and supports spontaneous branches.
Same thing for Git and probably for Mercurial, right?
From a cursory look, Mercurial seem pretty much identical to Git, but
written partly in another implementation language (Python (highlevel stuff) + C (lowlevel) instead of Shell & C (highlevel) + C (lowlevel)), except that the repository format and maybe the set of tools / their usage is probably not the same. (I wonder how Mercurial handles diffing/compression in it's repository format.)
(Maybe Python is a better language than Shell/C. But I'm personally not really interested in writing Python.)
A nice thing of Git (and perhaps also Mercurial) is it's conceptual simplicity. Git does not care about tracking diffs, it is conceptually storing full content for each version, and lets the lowerlevel storage find out about how to compact them efficiently and the higher level tools to care about merging. Git can also be used well for non-text content and that can make it a viable storage system for web applications and other purposes; although as mentioned I've started writing another object storage which is better at handling many small objects (and is planned to be able to garbage collect uninteresting parts)).
I haven't understood yet what Darcs is offering regarding "reordering of patches".
BTW it seems there is a way to handle GIT repositories with Darcs (I've never tried it): http://darcs.net/DarcsWiki/DarcsGit
http://git.or.cz/ is even going so far as to saying: "Some other projects have taken the concepts from the Git project and are either porting an existing toolset to use the Git tools, or reimplementing the concepts internally, to benefit from the performance improvements. This includes e.g. Darcs-git http://darcs.net/DarcsWiki/DarcsGit." I'm not sure whether Darcs-Git is really offering good performance (and whether that has been a goal), or whether it is just meant as a way to interoperate with Git.
Christian.