Thread (4 messages) 4 messages, 3 authors, 2020-06-16

Re: Collaborative conflict resolution feature request

flat view

From: Chris Torek <hidden>
Date: 2020-06-15 17:32:47

On Mon, Jun 15, 2020 at 10:11 AM Junio C Hamano [off-list ref] wrote:
Assuming that there are paths A and B that would leave conflict in
an attempted merge between commits X and Y, you somehow resolve the
conflict in A and leave B unresolved, what would you pass to the
other person and ask to resolve the conflicts in B?  It cannot be a
merge commit that records X and Y as its parents and a single tree
object as the result, because the whole point of this is that you do
not even know what to record for B.

I think the most important and useful part of this is to design the
data format used for that task of passing from you to the other
person.  The way to specify which paths are yours etc. are much less
interesting and trivial part of the story, I would think.
I've thought about this (some) myself in the past.  It seems to me that what
is needed is the ability to pass the complete unmerged state on.  That is,
we need something like five commits, made in a way similar to the way a
stash is made:

 * all resolved (stage 0) index entries (1 tree)
 * all index stage 1, 2, and 3 entries (3 trees)
 * and the current work-tree (1 tree)

This isn't quite complete as we also need the merge information; perhaps
that goes into a sixth commit, or can be wedged into the commit message
text of one (or more?) of the five trees.

The "resume unresolved merge" command then must unpack all of this
into the appropriate places.

Chris
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help