[Svnmerge] Merge, revert, merge may not commit added files

Blair Zajac blair at orcaware.com
Thu Jun 8 11:09:49 PDT 2006


Archie Cobbs wrote:
> Blair Zajac wrote:
> 
>> I ended up with a bad merge, that is, the merge committed but it did 
>> not contain the entire commit that was the source of the merge.
>>
>> This happens when you do:
>>
>> 1) Add a file on a trunk.
>> 2) Commit the file.
>> 3) Run svnmerge.py on the branch.
>> 4) Do a recursive revert: svn revert -R .
>> 5) DO NOT delete the newly added file in the branch.
>> 6) Re-run svnmerge.py to merge the same commit.
> 
> 
> In this case there should have been a "Skipped 'some/file'" message that
> was output. That is supposed to alert to you that the merge is incomplete.

Yes, there was.

> I agree the behavior is less than optimal, but in theory this is
> "known behavior" .. part of the "user interface" of svnmerge is that
> you must observe the output for any red flag messages... of course,
> these happen in other normal cases, such as a merge of a commit which
> modifies a file that got added in a previous but yet-to-be-merged
> revision.

Granted, it's known behavior, but part of svnmerge.py is to prevent mistakes 
like this.

On large merges, you could easily miss this line if you're not paying attention. 
  So I would like to see svnmerge.py handle this case, either by checking for 
stray files in the working copy or parsing the 'svn merge' output.

Comments on either approach?

Regards,
Blair



More information about the Svnmerge mailing list