summaryrefslogtreecommitdiff
path: root/zuul/merger
diff options
context:
space:
mode:
authorJames E. Blair <jeblair@redhat.com>2016-07-29 10:38:29 -0700
committerJames E. Blair <jeblair@redhat.com>2016-07-29 10:38:29 -0700
commit84c4f940000f731265416c7c0e4b482cd1a713da (patch)
tree579a5f50dc4fa01f64d240d5e674fc530ce6d909 /zuul/merger
parent176431ec1488fbde93c953972f639b8a31d173c8 (diff)
downloadzuul-84c4f940000f731265416c7c0e4b482cd1a713da.tar.gz
Cloner: correct fetch on pre-1.9 git2.5.0
Commit 6c54b531a36644d53ae054d3fdf846fb2e538677 changed the cloner to use 'fetch --tags' instead of update, however, 'fetch --tags' does not actually update heads before git version 1.9. So if we are using old versions of git, run both commands so that we get persistent behavior. Change-Id: I8ea8ac2c6a8384845a3310da63974afc3279564f
Diffstat (limited to 'zuul/merger')
-rw-r--r--zuul/merger/merger.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/zuul/merger/merger.py b/zuul/merger/merger.py
index 94933dec5..0c9f168ad 100644
--- a/zuul/merger/merger.py
+++ b/zuul/merger/merger.py
@@ -182,6 +182,13 @@ class Repo(object):
repo = self.createRepoObject()
self.log.debug("Updating repository %s" % self.local_path)
origin = repo.remotes.origin
+ if repo.git.version_info[:2] < (1, 9):
+ # Before 1.9, 'git fetch --tags' did not include the
+ # behavior covered by 'git --fetch', so we run both
+ # commands in that case. Starting with 1.9, 'git fetch
+ # --tags' is all that is necessary. See
+ # https://github.com/git/git/blob/master/Documentation/RelNotes/1.9.0.txt#L18-L20
+ origin.fetch()
origin.fetch(tags=True)