diff options
-rw-r--r-- | gbp/git/repository.py | 15 | ||||
-rw-r--r-- | tests/test_GitRepository.py | 2 |
2 files changed, 12 insertions, 5 deletions
diff --git a/gbp/git/repository.py b/gbp/git/repository.py index 9a67abf..fc7857b 100644 --- a/gbp/git/repository.py +++ b/gbp/git/repository.py @@ -1063,7 +1063,7 @@ class GitRepository(object): self._git_command("fetch", args.args) - def pull(self, repo=None, ff_only=False): + def pull(self, repo=None, ff_only=False, all_remotes=False): """ Fetch and merge from another repository @@ -1071,11 +1071,16 @@ class GitRepository(object): @type repo: C{str} @param ff_only: only merge if this results in a fast forward merge @type ff_only: C{bool} + @param all_remotes: fetch all remotes + @type all_remotes: C{bool} """ - args = [] - args += [ '--ff-only' ] if ff_only else [] - args += [ repo ] if repo else [] - self._git_command("pull", args) + args = GitArgs() + args.add_true(ff_only, '--ff-only') + if all_remotes: + args.add_true(all_remotes, '--all') + else: + args.add_true(repo, repo) + self._git_command("pull", args.args) def push(self, repo=None, src=None, dst=None, ff_only=True, force=False, tags=False): diff --git a/tests/test_GitRepository.py b/tests/test_GitRepository.py index b12f8d4..f48db0a 100644 --- a/tests/test_GitRepository.py +++ b/tests/test_GitRepository.py @@ -595,6 +595,8 @@ def test_pull(): >>> clone = gbp.git.GitRepository(d) >>> clone.set_branch('master') >>> clone.pull() + >>> clone.pull(all_remotes=True) + >>> clone.pull('origin', all_remotes=True) """ def test_fetch(): |