GitRepository.fetch: Add 'refspec' option
authorLingchaox Xin <lingchaox.xin@intel.com>
Wed, 10 Jul 2013 03:17:46 +0000 (11:17 +0800)
committerGuido Günther <agx@sigxcpu.org>
Wed, 4 Sep 2013 20:34:01 +0000 (22:34 +0200)
Signed-off-by: Lingchaox Xin <lingchaox.xin@intel.com>
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
gbp/git/repository.py
tests/test_GitRepository.py

index 9c55dfd..ea5deb0 100644 (file)
@@ -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)
 
index 24bdae2..2ee550e 100644 (file)
@@ -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')
     """