From 8fc426203da49defcea11cb2301093ce43ccec1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Fri, 5 Apr 2013 21:55:34 +0200 Subject: [PATCH] tags and trunk are variable; append to repo They will be in the form Repo:http://foo.com/svn/project;trunk=...;tags=... Both trunk and tags are optional. If trunk is not given, it is assumed that the Repo url itself contains the raw trunk folder. --- fdroidserver/common.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 0db812a4..d734dd94 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -197,8 +197,24 @@ class vcs_gitsvn(vcs): def gotorevisionx(self, rev): if not os.path.exists(self.local): # Brand new checkout... - if subprocess.call(['git', 'svn', 'clone', '-T', 'trunk', '-t', 'tags', self.remote, self.local]) != 0: - raise VCSException("Git clone failed") + gitsvn_cmd = ['git', 'svn', 'clone'] + remote_split = self.remote.split(';') + if len(remote_split) > 1: + for i in remote_split[1:]: + if i.startswith('trunk='): + trunk = i[6:] + elif i.startswith('tags='): + tags = i[5:] + gitsvn_cmd = [] + if trunk: + gitsvn_cmd += ['-T', trunk] + if tags: + gitsvn_cmd += ['-t', tags] + if subprocess.call(gitsvn_cmd + [remote_split[0], self.local]) != 0: + raise VCSException("Git clone failed") + else: + if subprocess.call(gitsvn_cmd + [self.remote, self.local]) != 0: + raise VCSException("Git clone failed") self.checkrepo() else: self.checkrepo()