[darcs-users] On merging

Andrew Pimlott andrew at pimlott.net
Fri Nov 26 03:57:03 UTC 2004


On Fri, Nov 26, 2004 at 02:50:01AM +1000, Anthony Towns wrote:
> I guess the main thing I don't get is why when you have conflicts, 
> "darcs pull" leaves unrecorded changes (ie, "vvvv", "****", and "^^^^") 
> in the repo? Having patch X recorded, pulling patch Y that conflicts 
> with patch X, and then running "darcs revert" and having the resulting 
> repo not have either X or Y applied (let alone the merger stuff) seems 
> confusing too.

As I wrote to Zooko, considering symmetry, what other result could there
be?

> Hrm, except surely that doesn't work right? If I've got patches:
> 
> A1:	addfile ./foo
> 
> A2:	hunk ./foo 1
> 	+ hello
> 
> B:	addfile ./foo
> 
> then if I apply A1,B and get a conflict, and then apply A2, I get a 
> changelog that adds ./foo twice, changes it once, and end up without the 
> file in my repository at all?
> 
> I'm sceptical because I find that behaviour completely batty, which 
> usually means I'm missing something obvious and enlightening :)

I think it's ok--and really the only possible outcome--for the repo to
be in a batty state after a conflict.  In principle, this should be
smoothed over by a nice UI.  The difficulty is that there is currently
no way, AFAICS, to resolve the conflict between A1 and B.  You'd like to
move one of the foos out of the way, but there's no way to name them!

Actually, it seems to be even worse:  If you have

    A1: addfile ./foo
    A2: mv ./foo ./bar
    B:  addfile ./foo

and you pull A1 and A2 to B, you get a conflict.  This seems as though
it could be a serious problem, but I'm not sure.

> (And I know I'm missing /something/ because I still don't see what 
> "unwinding" has to do with anything)

Me neither. :-/

Andrew




More information about the darcs-users mailing list