I'm trying to hunt down a strange issue where children in directories
added during a merge (i.e. copied from another branch) get committed
as "replaced" rather than "added".

This happens with a 1.6.x client (server version doesn't matter)
and only over http:// (both neon and serf).

It's not a presentation-level issue, the committed revision actually
has a "replace" action in the FSFS revision file.

It is fixed in trunk, but I'd like to get a fix for 1.6.x.
This is a really annoying bug because the replacements will spread
to other branches and cause all kinds of merging headaches later.

Any clues? See recipe below.

Thanks,
Stefan

$ R=http://localhost:8080/repos
$ svn co $R/trunk
A    trunk/gamma/delta
A    trunk/alpha
A    trunk/epsilon
A    trunk/epsilon/zeta
A    trunk/beta
Checked out revision 2.
$ svn co $R/branch
A    branch/gamma
A    branch/gamma/delta
A    branch/alpha
A    branch/epsilon
A    branch/epsilon/zeta
A    branch/beta
Checked out revision 2.
$ cd branch/                                                       
$ svn mkdir foo
A         foo
$ cd foo
$ echo a > a
$ svn add a
A         a
$ cd ..
$ svn ci -mm
Adding         foo
Adding         foo/a
Transmitting file data ..
Committed revision 3.
$ cd ../trunk/                                                     
$ svn up 
 At revision 3.
$ svn merge ^/trunk ^/branch  # merge --reintegrate ^/branch has same problem
--- Merging differences between repository URLs into '.':
A    foo
A    foo/a
svn$ svn st
 M      .
A  +    foo
A  +    foo/a
$ svn ci -mm
Sending        .
Adding         foo
Adding         foo/a
Committed revision 4.
$ svn log -r4 -v ^/
------------------------------------------------------------------------
r4 | (no author) | 2010-01-20 13:38:37 +0100 (Wed, 20 Jan 2010) | 1 line
Changed paths:
   M /trunk
   A /trunk/foo (from /branch/foo:3)
   R /trunk/foo/a (from /branch/foo/a:3)

Reply via email to