From d4470a844df8f560567a14380e783a10efc56daf Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Thu, 19 Jan 2012 18:31:37 -0500 Subject: [PATCH] ostbuild: Ensure we look in correct git repository if --fetch is specified The mirrordir variable was bound from the previous iteration, which was clearly broken. --- src/ostbuild/pyostbuild/builtin_resolve.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/ostbuild/pyostbuild/builtin_resolve.py b/src/ostbuild/pyostbuild/builtin_resolve.py index f4e4521e..f08fc89e 100755 --- a/src/ostbuild/pyostbuild/builtin_resolve.py +++ b/src/ostbuild/pyostbuild/builtin_resolve.py @@ -36,10 +36,13 @@ class OstbuildResolve(builtins.Builtin): def __init__(self): builtins.Builtin.__init__(self) - def _ensure_vcs_mirror(self, keytype, uri, branch): + def _get_mirrordir(self, keytype, uri, prefix=''): assert keytype == 'git' parsed = urlparse.urlsplit(uri) - mirror = os.path.join(self.mirrordir, keytype, parsed.scheme, parsed.netloc, parsed.path[1:]) + return os.path.join(self.mirrordir, prefix, keytype, parsed.scheme, parsed.netloc, parsed.path[1:]) + + def _ensure_vcs_mirror(self, keytype, uri, branch): + mirror = self._get_mirrordir(keytype, uri) tmp_mirror = mirror + '.tmp' if os.path.isdir(tmp_mirror): shutil.rmtree(tmp_mirror) @@ -59,7 +62,7 @@ class OstbuildResolve(builtins.Builtin): current_vcs_version = current_vcs_version.strip() if current_vcs_version != last_fetch_contents: log("last fetch %r differs from branch %r" % (last_fetch_contents, current_vcs_version)) - tmp_checkout = os.path.join(self.mirrordir, '_tmp-checkouts', keytype, parsed.netloc, parsed.path[1:]) + tmp_checkout = self._get_mirrordir(keytype, uri, prefix='_tmp-checkouts') if os.path.isdir(tmp_checkout): shutil.rmtree(tmp_checkout) parent = os.path.dirname(tmp_checkout) @@ -164,6 +167,7 @@ class OstbuildResolve(builtins.Builtin): (keytype, uri) = self._parse_src_key(component['src']) try: fetch_components.index(component['name']) + mirrordir = self._get_mirrordir(keytype, uri) except ValueError, e: mirrordir = self._ensure_vcs_mirror(keytype, uri, component['branch']) revision = buildutil.get_git_version_describe(mirrordir,