From b69da1491808b319ed0bc58d3579c75f3ca17e12 Mon Sep 17 00:00:00 2001 From: Fabian Groffen Date: Sun, 12 Nov 2006 08:33:40 +0000 Subject: [PATCH] Added SVN support for syncing next to CVS support. svn path=/main/branches/prefix/; revision=5015 --- bin/emerge | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/bin/emerge b/bin/emerge index ee3dab027..0a2bb3a9f 100755 --- a/bin/emerge +++ b/bin/emerge @@ -3435,6 +3435,38 @@ def action_sync(settings, trees, mtimedb, myopts, myaction): if retval != os.EX_OK: sys.exit(retval) dosyncuri = syncuri + elif syncuri[:11]=="svn+http://": + if not os.path.exists(portage_const.EPREFIX+"/usr/bin/svn"): + print "!!! svn does not exist, so SVN support is disabled." + print "!!! Type \"emerge dev-util/subversion\" to enable SVN support." + sys.exit(1) + svndir=os.path.dirname(myportdir) + if not os.path.exists(myportdir+"/.svn"): + #initial checkout + print ">>> Starting initial svn checkout with "+syncuri+"..." + if os.path.exists(svndir+"/prefix"): + print "!!! existing",svndir+"/prefix directory; exiting." + sys.exit(1) + try: + os.rmdir(myportdir) + except OSError, e: + if e.errno != errno.ENOENT: + sys.stderr.write( + "!!! existing '%s' directory; exiting.\n" % myportdir) + sys.exit(1) + del e + if portage.spawn("cd "+svndir+"; svn checkout "+syncuri,settings,free=1): + print "!!! svn checkout error; exiting." + sys.exit(1) + os.rename(os.path.join(svndir, "prefix"), myportdir) + else: + #svn update + print ">>> Starting svn update..." + retval = portage.spawn("cd '%s'; svn update" % myportdir, \ + settings, free=1) + if retval != os.EX_OK: + sys.exit(retval) + dosyncuri = syncuri else: print "!!! rsync setting: ",syncuri,"not recognized; exiting." sys.exit(1) -- 2.26.2