summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLingchaox Xin <lingchaox.xin@intel.com>2013-07-10 11:17:46 +0800
committerGuido Günther <agx@sigxcpu.org>2013-09-04 22:34:01 +0200
commit1320de2ae2434a89979f1c753fdef67ddcfb4aea (patch)
treec29be5810f1690b732520b4682d2cd49c8831db4
parenteca5a3365c5461519fd23ab2e85e5de9195da007 (diff)
GitRepository.fetch: Add 'refspec' option
Signed-off-by: Lingchaox Xin <lingchaox.xin@intel.com> Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
-rw-r--r--gbp/git/repository.py5
-rw-r--r--tests/test_GitRepository.py1
2 files changed, 5 insertions, 1 deletions
diff --git a/gbp/git/repository.py b/gbp/git/repository.py
index 9c55dfd8..ea5deb03 100644
--- a/gbp/git/repository.py
+++ b/gbp/git/repository.py
@@ -1013,7 +1013,7 @@ class GitRepository(object):
args = GitArgs('rm', name)
self._git_command("remote", args.args)
- def fetch(self, repo=None, tags=False, depth=0):
+ def fetch(self, repo=None, tags=False, depth=0, refspec=None):
"""
Download objects and refs from another repository.
@@ -1023,11 +1023,14 @@ class GitRepository(object):
@type tags: C{bool}
@param depth: deepen the history of (shallow) repository to depth I{depth}
@type depth: C{int}
+ @param refspec: refspec to use instead of the default from git config
+ @type refspec: C{str}
"""
args = GitArgs('--quiet')
args.add_true(tags, '--tags')
args.add_cond(depth, '--depth=%s' % depth)
args.add_cond(repo, repo)
+ args.add_cond(refspec, refspec)
self._git_command("fetch", args.args)
diff --git a/tests/test_GitRepository.py b/tests/test_GitRepository.py
index 24bdae26..2ee550ec 100644
--- a/tests/test_GitRepository.py
+++ b/tests/test_GitRepository.py
@@ -600,6 +600,7 @@ def test_fetch():
>>> clone.add_remote_repo('foo', repo_dir)
>>> clone.fetch('foo')
>>> clone.fetch('foo', tags=True)
+ >>> clone.fetch('foo', refspec='refs/heads/master')
>>> clone.remove_remote_repo('foo')
"""