From 5cdb8bb57135ed9829bb55b16a781e713adc2154 Mon Sep 17 00:00:00 2001 From: Christopher Phang Date: Mon, 26 Sep 2016 13:48:05 +0000 Subject: gitdir: Re-introduce clone_into functions needed for the import tool The clone_into functions were deprecated from commit 014a029ade9a045a839ca86c35690b218098ea33, but functions in baserock-import still depend on these functions. Change-Id: I7362e1ae70bf86677b0019248ca8538912507b51 --- morphlib/git.py | 6 ++++++ morphlib/gitdir.py | 3 +++ 2 files changed, 9 insertions(+) (limited to 'morphlib') diff --git a/morphlib/git.py b/morphlib/git.py index 5f2ca7f6..063ec0e7 100644 --- a/morphlib/git.py +++ b/morphlib/git.py @@ -264,6 +264,12 @@ def is_valid_sha1(ref): return len(ref) == 40 and all(x in string.hexdigits for x in ref) +def clone_into(runcmd, srcpath, targetpath, ref=None): + '''Clones a repo in srcpath into targetpath, optionally directly at ref.''' + if ref is None: + runcmd(['git', 'clone', srcpath, targetpath]) + else: + runcmd(['git', 'clone', '-b', ref, srcpath, targetpath]) def gitcmd(runcmd, *args, **kwargs): '''Run git commands safely''' diff --git a/morphlib/gitdir.py b/morphlib/gitdir.py index f1286b25..0189ccb6 100644 --- a/morphlib/gitdir.py +++ b/morphlib/gitdir.py @@ -484,6 +484,9 @@ class GitDirectory(object): # Exact error is logged already by the runcmd() function. raise NoGitRepoError(self.dirname) + def clone_into(self, dst, ref=None): #pragma: no cover + morphlib.git.clone_into(cliapp.runcmd, self.dirname, dst, ref=ref) + def checkout(self, branch_name): # pragma: no cover '''Check out a git branch.''' morphlib.git.gitcmd(self._runcmd, 'checkout', branch_name) -- cgit v1.2.1