> The problem with reintegrate merges you are describing sounds > quite serious and should be added to the issue tracker.
I had recently submitted it (but didn't know about posting to this list first). See http://subversion.tigris.org/issues/show_bug.cgi?id=3816 > Can you share more information to allow others to reproduce this problem? > What do your file externals definitions look like? Are you pinning externals > to known revisions or are they coming from URLS in the HEAD revision? They are pinned to known revisions, they look like "-r 12345 ^/path/to/my/branch/somefile somefile" (I never use the HEAD revision) > If you could write a script that starts with an empty repository, gets a > working copy, and runs svn commands until the problem triggers, that would > help greatly (and avoids any ambiguity in the problem description!). See attached python script (tested only on WinXP + Python 2.6.5)
import subprocess import os def getDirAsURL(): return "file:///"+(os.getcwd().replace('\\','/')) def writeFile(filename,s): with open(filename,"w") as f: f.write(s) def svnadd(path): subprocess.call(["svn","add",path]) def svncommit(path,username,msg): subprocess.call(["svn","commit",path,"--username",username,"-m",msg]) def svnpropset(path,propname,propval): subprocess.call(["svn","propset",propname,propval,path]) def svnupdate(path): subprocess.call(["svn","update",path]) def svnversion(path): subprocess.call(["svnversion",path]) subprocess.call(["svnadmin","create","repos"]) subprocess.call(["svn","co",getDirAsURL()+"/repos","working"]) subprocess.call(["svn","mkdir","working/foo/trunk/","--parents"]) subprocess.call(["svn","mkdir","working/bar/trunk/","--parents"]) writeFile("working/foo/trunk/blah.txt","this is blah.txt, first version") svnadd("working/foo/trunk/blah.txt") svncommit("working","daemon","init checkin") writeFile("working/foo/trunk/blah.txt","this is blah.txt, second version") svncommit("working","daemon","next checkin") writeFile("working/foo/trunk/blah.txt","this is blah.txt, third version") svncommit("working","daemon","next checkin") svnpropset("working/bar/trunk/","svn:externals"," blah.txt -r 1 ^/foo/trunk/blah.txt") svncommit("working","daemon","add externals") svnupdate("working") svnversion("working")