Don't merge post-merge items
In all cases, the launcher-merger updates the repos involved in a
job before running it. If there are pre-merge changes, it then
merges those changes into the repos. If the job does not involve
pre-merge changes, then nothing further needs to happen. Avoid
attempting to merge changes which are already merged in this case.
Change-Id: Ie0c0d258b4edad4afc3b569f8ea222523bc769c1
diff --git a/zuul/launcher/server.py b/zuul/launcher/server.py
index 9e29d7f..76b0fbb 100644
--- a/zuul/launcher/server.py
+++ b/zuul/launcher/server.py
@@ -361,7 +361,11 @@
task.wait()
self.log.debug("Job %s: git updates complete" % (job.unique,))
merger = self._getMerger(jobdir.git_root)
- commit = merger.mergeChanges(args['items']) # noqa
+ merge_items = [i for i in args['items'] if i.get('refspec')]
+ if merge_items:
+ commit = merger.mergeChanges(merge_items) # noqa
+ else:
+ commit = args['items'][-1]['newrev'] # noqa
# TODOv3: Ansible the ansible thing here.
self.prepareAnsibleFiles(jobdir, args)