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

Reply via email to