Return-Path: Delivered-To: apmail-subversion-users-archive@minotaur.apache.org Received: (qmail 47424 invoked from network); 22 Feb 2011 16:56:02 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 22 Feb 2011 16:56:02 -0000 Received: (qmail 8500 invoked by uid 500); 22 Feb 2011 16:56:01 -0000 Delivered-To: apmail-subversion-users-archive@subversion.apache.org Received: (qmail 8402 invoked by uid 500); 22 Feb 2011 16:55:59 -0000 Mailing-List: contact users-help@subversion.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list users@subversion.apache.org Received: (qmail 8393 invoked by uid 99); 22 Feb 2011 16:55:58 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 22 Feb 2011 16:55:58 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy) Received: from [66.111.4.25] (HELO out1.smtp.messagingengine.com) (66.111.4.25) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 22 Feb 2011 16:55:49 +0000 Received: from compute1.internal (compute1.nyi.mail.srv.osa [10.202.2.41]) by gateway1.messagingengine.com (Postfix) with ESMTP id 1F33D20926; Tue, 22 Feb 2011 11:55:29 -0500 (EST) Received: from frontend2.messagingengine.com ([10.202.2.161]) by compute1.internal (MEProxy); Tue, 22 Feb 2011 11:55:29 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=messagingengine.com; h=date:from:to:cc:subject:message-id:references:mime-version:content-type:in-reply-to; s=smtpout; bh=fE2XWYzuviuI+oTK5N4f1DTUOpQ=; b=L7XdDYTs2wahbyZheFe4Gs677SEKCjSvouR13xUSXpGSQ7W7y6/TcGMc5YqGecZoX9mm5WACQnQsImZtNKyR0UDqofWrbIn8ESC27cu0Elu4YOZX0EkG/kd2vJz8FyJvSi51r/+6Q97ZYUucrzviS2wT7b5Ysop9wT4VG+w37YQ= X-Sasl-enc: WrKPHTua5rCFtUPEpJ8x9WPDsBZIrOvrGfAam//LB28KsIHFB0/MMikb38p5xg 1298393727 Received: from daniel3.local (bzq-79-183-46-214.red.bezeqint.net [79.183.46.214]) by mail.messagingengine.com (Postfix) with ESMTPSA id B6DF544060C; Tue, 22 Feb 2011 11:55:25 -0500 (EST) Date: Tue, 22 Feb 2011 18:50:42 +0200 From: Daniel Shahaf To: Jason Sachs Cc: users@subversion.apache.org Subject: Re: bug in mixed-version detection + single-file externals Message-ID: <20110222165042.GE9334@daniel3.local> References: <20110222163223.GR11578@ted.stsp.name> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Virus-Checked: Checked by ClamAV on apache.org Jason Sachs wrote on Tue, Feb 22, 2011 at 11:36:45 -0500: > 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 > Could you use "#!/usr/bin/env python" as the first line please? Also, the script should rm -rf repos working w_foo w_bar, to make it re-runnable. > 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") When I run this, the output ends with [[[ Committed revision 7. ['svn', 'update', 'w_bar'] svn: Unrecognized format for the relative external URL 'blah.txt'. ['svnversion', 'w_bar'] 7 ['svn', 'merge', '--reintegrate', 'file:////tmp/svn/repos/bar/branches/br1', 'w_bar'] --- Merging differences between repository URLs into 'w_bar': A w_bar/hohum.txt ]]]