Paul Burba <ptbu...@gmail.com> writes: > Bob's script is a different beast, there is a real problem there. I > will rewrite the test to demonstrate his scenario.
It doesn't matter whether we use 1.7 or 1.8 for this: rm -rf repo wc svnadmin create repo --compatible-version 1.7 svn -mm mkdir --parents file://`pwd`/repo/T/P svn -mm cp file://`pwd`/repo/T ^/B svn -mm mkdir --parents file://`pwd`/repo/T/P/Q/R svn -mm mkdir file://`pwd`/repo/T/X svn -mm rm file://`pwd`/repo/T/P/Q/R svn co --depth empty file://`pwd`/repo/B wc svn merge ^/T wc svn ci -mm wc Both 1.7 and 1.8 give this history: svn log file://`pwd`/repo -vq ------------------------------------------------------------------------ r6 | pm | 2013-05-16 18:38:44 +0100 (Thu, 16 May 2013) Changed paths: M /B A /B/X (from /T/X:5) ------------------------------------------------------------------------ r5 | pm | 2013-05-16 18:38:43 +0100 (Thu, 16 May 2013) Changed paths: D /T/P/Q/R ------------------------------------------------------------------------ r4 | pm | 2013-05-16 18:38:43 +0100 (Thu, 16 May 2013) Changed paths: A /T/X ------------------------------------------------------------------------ r3 | pm | 2013-05-16 18:38:43 +0100 (Thu, 16 May 2013) Changed paths: A /T/P/Q A /T/P/Q/R ------------------------------------------------------------------------ r2 | pm | 2013-05-16 18:38:43 +0100 (Thu, 16 May 2013) Changed paths: A /B (from /T:1) ------------------------------------------------------------------------ r1 | pm | 2013-05-16 18:38:43 +0100 (Thu, 16 May 2013) Changed paths: A /T A /T/P ------------------------------------------------------------------------ svn pg svn:mergeinfo file://`pwd`/repo/B /T:2-5* This merge fails with 1.8: svn co file://`pwd`/repo/B wc svn merge ^/T wc svn ci -mm wc svn: E160028: '/B/P/Q/R' is out of date But the same merge works with 1.7 giving this commit: r7 | pm | 2013-05-16 18:54:02 +0100 (Thu, 16 May 2013) Changed paths: M /B A /B/P/Q (from /T/P/Q:3) D /B/P/Q/R The reason 1.8 fails is that it is not copying T/P/Q from the old r3 but from head. With 1.7 the wc.db before the commit looks like: sqlite3 wc/.svn/wc.db "select op_depth, local_relpath, presence, repos_path, revision from nodes order by op_depth, local_relpath" 0||normal|B|6 0|P|normal|B/P|6 0|X|normal|B/X|6 2|P/Q|normal|T/P/Q|3 2|P/Q/R|normal|T/P/Q/R|3 3|P/Q/R|base-deleted|| but with 1.8 it looks like: sqlite3 wc/.svn/wc.db "select op_depth, local_relpath, presence, repos_path, revision from nodes order by op_depth, local_relpath" 0||normal|B|6 0|P|normal|B/P|6 0|X|normal|B/X|6 2|P/Q|normal|T/P/Q|6 2|P/Q/R|normal|T/P/Q/R|6 3|P/Q/R|base-deleted|| The merge has created a bogus copy, it has the path structure associated with r3 but is marked r6. -- Certified & Supported Apache Subversion Downloads: http://www.wandisco.com/subversion/download