I wanted to reverse-merge some accidental changes on a subdirectory on my 
branch and svn really confuses me in this. Is the below behavior from 
subversion intended or have I stubled on a bug?

I wanted to reverse-merge revision 1000 on all the files in the directory 
"sub/dir", below illustrated with only one file.

wcroot> svn diff --summarize -c 1000 sub/dir
M sub/dir/foobar.txt
wcroot> svn merge -c -1000 sub/dir
--- Recording mergeinfo for reverse merge of r1000 into '.':
 U   .
So the file sub/dir/foobar.txt is not reverse-merged (and the merge info is 
elided even though the output does not say so)

I tried a few different versions of this with e.g. -r 1000:999 with identical 
results.

Then I did the following, which I thought would be more of the same:

wcroot> cd foo/bar
wcroot/foo/bar> svn merge -c -1000 .
--- Reverse-merging r1000 into '.':
U    sub/dir/foobar.txt
--- Recording mergeinfo for reverse merge of r1000 into '.':
 G   .
--- Eliding mergeinfo from '.':
 U   .

So now it does what I wanted to.

Is it intended that merge should do different things if I use "." or "sub/dir" 
as my WCTARGET? I find it confusing and it was mostly luck that I stumbled on 
the right solution. "svn help merge" does not seem to indicate that these two 
use cases should be any different, but I may misread it. 
Btw, this was done with "svn, version 1.9.5 (r1770682)"

TIA,
  Chris

Reply via email to