[darcs-users] Upcoming 2.8

Stephen J. Turnbull stephen at xemacs.org
Sun Feb 26 11:51:51 UTC 2012


Archi writes:
 > On Sat, 25 Feb 2012 07:21:00 -0700, Stephen J. Turnbull  
 > <stephen at xemacs.org> wrote:
 > 
 > > Archi writes:
 > >
 > > > What scenario were you wanting rebase for that patch commutation does 
 > > not
 > > > solve? There are specific corner cases, but I don't see how cornercases
 > > > make for a good marketing feature.
 > >
 > > Rebase is mostly about presentation, rather than solving problems.
 > >
 > > Also, in some cases you want to "force commute" across a dependency
 > > (again usually for presentation purposes, but sometimes to make a
 > > branch work better).
 > 
 > The new hunk splitting allows those commutes.

It does if there's a conflict?  I think not in general, and surely not
in the specific case that there's a conflict in one line -- those must
be resolved by a human being.  A good rebase tool provides support for
that kind of thing.

 > What do you mean by presentation? darcs changes?

Basically, yes.  Also, although it's fundamentally against the Darcs/
patch theory philosophy, users of DAG-oriented VCSes frequently
testify that analysis of the history DAG can help with bug forensics.
But precisely because Darcs does not record history in that way, it's
easy to pull back and forth between two unrelated feature branches and
get a horrible mess in changes.  There are some heuristics like
"spontaneous feature branching", IIRC the term used, but as far as I
know there are no tools for graphing that are aware of those.

 > For that you can just create a new working dir and pull in the
 > order you want.

No, you can't.  Not if there are dependencies.  Haven't you seen those
50-line patches with a megabyte of dependencies that show up on
darcs-devel every so often?

Also, as others have pointed out, that is an eminently automatable
task, and should be.  That's all that rebase is, basically: automated
reordering of commits.  However, a good rebase tool also provides
support for resolving conflicts, and re-resolving conflicts that
recur (although that may not happen in Darcs; I haven't thought about
it carefully).

 > Some external graphing tool?  Hmmm... same solution I think.

What graphing tool are you thinking of?


More information about the darcs-users mailing list