Hmm, a merge attempt isn't that hard, here's another script that does
that, and has the same problem.
We don't use local file repositories, but this has the same symptom as
w/ a remote server.
hope it's either an easy fix or an easy workaround...
--Jason
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 shellexec(a):
print(str(a))
subprocess.call(a)
def svnadd(path):
shellexec(["svn","add",path])
def svncommit(path,username,msg):
shellexec(["svn","commit",path,"--username",username,"-m",msg])
def svnpropset(path,propname,propval):
shellexec(["svn","propset",propname,propval,path])
def svnupdate(path):
shellexec(["svn","update",path])
def svnversion(path):
shellexec(["svnversion",path])
def svncopy(src,dest,username,msg):
shellexec(["svn","copy",src,dest,"--username",username,"-m",msg,"--parents"])
def svncheckout(src,dest):
shellexec(["svn","co",src,dest]);
def svnmkdir(path):
shellexec(["svn","mkdir",path,"--parents"])
def svnmerge_r(src,dest):
shellexec(["svn","merge","--reintegrate", src, dest])
user = "daemon"
shellexec(["svnadmin","create","repos"])
svncheckout(getDirAsURL()+"/repos","working")
svnmkdir("working/foo/trunk/")
svnmkdir("working/bar/trunk/")
svncommit("working",user,"init checkin")
svncheckout(getDirAsURL()+"/repos/foo/trunk","w_foo")
writeFile("w_foo/blah.txt","this is blah.txt, first version")
svnadd("w_foo/blah.txt")
svncommit("w_foo",user,"init checkin")
writeFile("w_foo/blah.txt","this is blah.txt, second version")
svncommit("w_foo",user,"next checkin")
svncheckout(getDirAsURL()+"/repos/bar/trunk","w_bar")
writeFile("w_bar/hohum.txt","hohum.txt")
svnadd("w_bar/hohum.txt")
svncommit("w_bar",user,"another checkin")
svncopy("w_bar",getDirAsURL()+"/repos/bar/branches/br1",user,"making a branch")
writeFile("w_foo/blah.txt","this is blah.txt, third version")
svncommit("w_foo",user,"next checkin")
svnupdate("w_bar")
svnpropset("w_bar","svn:externals"," blah.txt -r 3 ^/foo/trunk/blah.txt")
svncommit("w_bar",user,"add externals")
svnupdate("w_bar")
svnversion("w_bar")
svnmerge_r(getDirAsURL()+"/repos/bar/branches/br1","w_bar")