[cvsnt] Yet another obscure merge problem

Tony Hoyle tmh at nodomain.org
Tue Feb 24 14:29:23 GMT 2004


On Tue, 24 Feb 2004 13:55:53 -0000, "Harrison, Andrew"
<andy.harrison at anite.com> wrote:

>> From: Tony Hoyle [mailto:tmh at nodomain.org]
>> 
>> It's more that the deletion is special cased on the code as there are
>> special conditions involved. eg. you merge a file which has been
>> deleted on branch1 but modified on branch2.. must force a conflict
>> there.
>
>Ok, in that case there is clearly a conflict. But if the file has been
>deleted on branch1 and not modified on branch2 then surely any merge should
>result in a deleted file?
>
How is CVS to distinguish between the case of the file being
added/committed on Branch2 after it was deleted on branch1 or before?
If you've just created the file and a merge goes and deletes it that's
far worse than a couple of extra files hanging around.

This is an unresolvable conflict....  Actually CVS should output a
message for this: 'file c.txt has been modified, but has been removed
in revision foo'.  The code that output the message isn't being called
though (by 'modified' here it means modified since the common
ancestor).

There are two cases:

1. Repository file at branch/merge point, file removed on branch ->
remove file 
2. Repository file not at branch/merge point, file removed on branch
-> warning  + leave file alone

The only error in the code is case 2 which doesn't print a warning...
case 1 actually works.

Tony




More information about the cvsnt mailing list