From 5f53e600c94c6f5335ef34a4bc3bba70aaf577e0 Mon Sep 17 00:00:00 2001 From: Antoine Musso Date: Tue, 4 Feb 2014 14:16:18 +0100 Subject: [PATCH] Merger: log non Git exceptions on merge Some git merge commands fails for me with an AssertionError coming from GitPython: AssertionError: len([ "5a0a437ee9a6fd4b30484dfdc2455c83ea00a058\t\t'refs/changes/80/111180/1' of ssh://gerrit.wikimedia.org:29418/mediawiki/core\n"] ) != len([ 'Total 10 (delta 9), reused 10 (delta 9)', ' * branch refs/changes/80/111180/1 -> FETCH_HEAD' ]) Zuul.Merger explicitly log merge exceptions at debug level, though we should only load GitCommandError exceptions and properly log other exceptions (such as AssertionError). Change-Id: Idca682c0920b9e6eac3f12cc05634dfe304a0305 --- zuul/merger/merger.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/zuul/merger/merger.py b/zuul/merger/merger.py index 13dd1225c6..10ce82cc60 100644 --- a/zuul/merger/merger.py +++ b/zuul/merger/merger.py @@ -216,11 +216,14 @@ class Merger(object): commit = repo.cherryPick(item['refspec']) else: raise Exception("Unsupported merge mode: %s" % mode) - except Exception: - # Log exceptions at debug level because they are + except git.GitCommandError: + # Log git exceptions at debug level because they are # usually benign merge conflicts self.log.debug("Unable to merge %s" % item, exc_info=True) return None + except Exception: + self.log.exception("Exception while merging a change:") + return None return commit