[darcs-users] How is merge supposed to work?

Tommy Pettersson ptp at lysator.liu.se
Sun Oct 24 16:02:24 UTC 2004


On Sun, Oct 24, 2004 at 12:37:17PM +0200, Miguel Bazdresch wrote:
> "After you have manually resolved all conflicts, run 'darcs resolve' to
> let darcs know that the current working copy is correct."
> 
> Am I right?

I'm not sure, but I think not.  (Someone pleas correct me
if I'm wrong on anything.)

Until recently, darcs resolved "simple" conflicts autonomously,
but left "hard" ones to be manually resolved by the user, by
inserting the two conflicting parts with markers around them.
Hence the wording "mark and resolve".

It turned out "simple" was not always so simple, and the
ready-to-record resolution provided by darcs could look more
like randomly inserted or removed lines.  This behavior has
now changed, and darcs always performs only the "mark" part
to let the user do the resolving.

In any case, to make the resolution -- be it manual or
automatic -- effective, it must be recorded.  It will be
a normal patch with the property of "hiding" all of the
conflicting lines behind dependencies, so they won't bother
anyone again.

The resolving (marking) of conflicts is a normal part of pull
and push, so 'darcs resolve' is not needed together with them.
'darcs apply' can be told to skip the resolving step.
(I don't know why pull and push can't.)  'darcs revert'
can be used to remove the markers and "keep" the conflict.
'darcs resolve' can be used to rerun the resolving and reinsert
the conflicts and their markers.

A better wording might be:

  Bring forth any unresolved conflicts
  and put markers around them.

Darcs resolve can for example be used to check if a recorded
resolution missed to cover any conflicts.


-- 
Tommy Pettersson <ptp at lysator.liu.se>




More information about the darcs-users mailing list