Issue 2550 conflict resolution for non-hunks is rotten

Title conflict resolution for non-hunks is rotten
Priority Status unknown
Milestone Resolved in
Superseder Nosy List bf
Assigned To

Created on 2017-09-22.15:37:29 by bf, last changed 2017-09-22.15:37:29 by bf.

msg19663 (view) Author: bf Date: 2017-09-22.15:37:28
What I mean is the standard resolution as implemented in
Darcs.Patch.Conflict.mangleUnravelled: unless the input consists only of
hunks, it simply takes the head of the list. In other words: pick any
version, whatever comes first.

You can see that when you pull 'addfile ./x' into a repo with 'adddir
./x' (see issue2548 for what else goes wrong when you do that) using
--mark-conflicts: for darcs1 it gives you the directory x, for darcs2 it
gives you the file x. Neither is a good solution: it should instead
produce the equivalent of the usual "conflict markup" in the file
system. That is:

The standard conflict resolution for name collisions (add or move with
the same target path) should be (pending) moves for *both* to some not
yet existing name. For instance, if the target is "./path/to/thing",
then I would like to get ./path/to/thing.~1~ and ./path/to/thing.~2~ so
I can properly compare the two and chose one or create a mixture of both.

(Ideally, instead of increasing numbers, we should append the hash,
perhaps suitably shortened, of the named patches that contain the
conflicting prims. This is a different issue, however, as it pertains to
hunk conflicts in very much the same way.)
Date User Action Args
2017-09-22 15:37:29bfcreate