diff options
author | Per Øyvind Karlsen <proyvind@moondrake.org> | 2016-05-29 18:12:31 +0200 |
---|---|---|
committer | Per Øyvind Karlsen <proyvind@moondrake.org> | 2016-05-29 18:12:31 +0200 |
commit | dfa7261e4f28ab48825d3ffd158ee7dcef688650 (patch) | |
tree | d8a026f1844653b0dc17e45d2ab14cf59ed8af5a | |
parent | 8c880bed7341d63276ad0d7dea68dc7b9a2674d3 (diff) | |
download | mgarepo-dfa7261e4f28ab48825d3ffd158ee7dcef688650.tar mgarepo-dfa7261e4f28ab48825d3ffd158ee7dcef688650.tar.gz mgarepo-dfa7261e4f28ab48825d3ffd158ee7dcef688650.tar.bz2 mgarepo-dfa7261e4f28ab48825d3ffd158ee7dcef688650.tar.xz mgarepo-dfa7261e4f28ab48825d3ffd158ee7dcef688650.zip |
fix downloading of sources from binrepo for git
-rw-r--r-- | MgaRepo/git.py | 14 | ||||
-rw-r--r-- | MgaRepo/rpmutil.py | 17 |
2 files changed, 19 insertions, 12 deletions
diff --git a/MgaRepo/git.py b/MgaRepo/git.py index 8c6bc50..49b13db 100644 --- a/MgaRepo/git.py +++ b/MgaRepo/git.py @@ -1,7 +1,7 @@ from MgaRepo import Error, config from MgaRepo.util import execcmd from MgaRepo.VCS import * -from os.path import basename, dirname +from os.path import basename, dirname, abspath from os import chdir, getcwd import sys import re @@ -24,7 +24,7 @@ class GIT(VCS): def clone(self, url, targetpath, **kwargs): if url.split(':')[0].find("svn") < 0: - return VCS.clone(self, url, targetpath, **kwargs) + return VCS.clone(self, url, **kwargs) else: # To speed things up on huge repositories, we'll just grab all the # revision numbers for this specific directory and grab these only @@ -43,11 +43,10 @@ class GIT(VCS): trunk = basename(url) tags = "releases" # cloning svn braches as well should rather be optionalif reenabled.. - #cmd = ["svn", "init", topurl, "--trunk="+trunk, "--tags="+tags, targetpath] - cmd = ["svn", "init", url, targetpath] + #cmd = ["svn", "init", topurl, "--trunk="+trunk, "--tags="+tags", targetpath] + cmd = ["svn", "init", url, abspath(targetpath)] self._execVcs(*cmd, **kwargs) - chdir(targetpath) - revisions.sort() + os.environ.update({"GIT_WORK_TREE" : abspath(targetpath)}) for entry in logentries: revisions.append(int(entry.attrib["revision"])) revisions.sort() @@ -79,6 +78,8 @@ class GIT(VCS): return None def update(self, path, **kwargs): + os.environ.update({"GIT_WORK_TREE" : abspath(path)}) + cmd = ["svn", "log", "--oneline", "--limit=1"] retval, result = self._execVcs(*cmd) if retval: @@ -119,7 +120,6 @@ class GIT(VCS): log = parser.close() logentries = log.getiterator("logentry") revisions = [] - chdir(path) for entry in logentries: revisions.append(int(entry.attrib["revision"])) revisions.sort() diff --git a/MgaRepo/rpmutil.py b/MgaRepo/rpmutil.py index 1c0adbd..1b6f261 100644 --- a/MgaRepo/rpmutil.py +++ b/MgaRepo/rpmutil.py @@ -14,6 +14,7 @@ import string import glob import sys import os +from time import sleep def detectVCS(url): if ':' in url: @@ -514,16 +515,22 @@ def checkout(pkgdirurl, path=None, revision=None, branch=None, distro=None, back if not spec: binrepo.download_binaries(path) -def clone(pkgdirurl, path=None, branch=None, - distro=None): +def clone(pkgdirurl, path=None, revision=None, branch=None, distro=None, backports=None, + spec=False): o_pkgdirurl = pkgdirurl - pkgdirurl = layout.package_url(o_pkgdirurl, distro=distro) - current = layout.checkout_url(pkgdirurl, branch=branch) + pkgdirurl = layout.package_url(o_pkgdirurl, distro=distro, backports=backports) + append = None + if spec: + append = "SPECS" + current = layout.checkout_url(pkgdirurl, branch=branch, backports=backports, + append_path=append) if path is None: path = layout.package_name(pkgdirurl) - mirror.info(current) + mirror.info(current, write=True) git = GIT() git.clone(current, path, show=1) + if not spec: + binrepo.download_binaries(path) def getpkgtopdir(basedir=None): |