> 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")