[cvsnt] Yet another obscure merge problem

Tony Hoyle tmh at nodomain.org
Tue Feb 24 12:03:01 GMT 2004


On Tue, 24 Feb 2004 11:23:57 -0000, "Harrison, Andrew"
<andy.harrison at anite.com> wrote:


>So, the current state of file.c is
>Main_Dev: rev 1.2 (deleted)
>Branch1: rev 1.1
>Branch2: Doesn't exist
>
>Now, if I merge Branch1 -> Branch2 then file.c gets recreated in Branch2. Is
>this correct?

Since Branch2 doesn't exist then the Branch1 file is created -
actually it's more like a merge from file+nothing=file.  

This is one of those cases where you have to keep an eye on what
you're merging.  It's not actually a mergepoint thing (mergepoints
aren't used on deleted files) just an artefact of the merging process.

It's debatable whether to produce a conflict in this case.  A lot of
the time the merge is new file -> branch (all branches have an
implicit 'deleted file' if the file hasn't been added yet), and
there's no way to distinguish between the cases.  IIRC The old CVS
used to conflict in this case but that gets annoying really fast if
you're frequently merging - at least in our development adding files
is much more frequent than deleting them.

Maybe printing a warning might work...

Tony




More information about the cvsnt mailing list