[darcs-users] A comparison of Darcs and Git
Stephen J. Turnbull
stephen at xemacs.org
Wed Dec 16 15:53:18 UTC 2009
Marc Weber writes:
> > > Probably this is so much work that nobody will ever implement it.
> > That was the consensus regarding a "smart" replace operation.
> > See also "structured editing".
I disagree. I think within five years you'll see this happening.
> I asked at #git now. Git can't find out on which commits a commit
> depends. So if you get conflicts you can start searching those commits.
git currently can't do that, but it wouldn't be hard to implement.
You start with "git log --numstat <commit>" which will give you a list
of changed files. For each file pipe "git log -p ..<commit> <file>"
into a Python or Perl script that keeps a database of touched lines.
This would presumbly be rather slower (multipass, for one thing) than
Darcs which keeps the necessary information in the patches.
> So if you have to move many patches consider using darcs.
> If you expect to have a very linear history only git may be the better
I would say the opposite, except that maybe we have different
definitions of "linear". I would say that a history which always
reconverges rapidly to the mainline is linear, even though there may
be a lot of concurrent development going on at any given time. Darcs
is good at this. A history with multiple long-lived branches is
nonlinear, even if each branch is locally perfectly linear. git is
good at that.
More information about the darcs-users