hooks: Don't run FTL check on merges or backouts (bug 1422487), r?gps draft
authorIan Moody <moz-ian@perix.co.uk>
Mon, 04 Dec 2017 12:38:22 +0000
changeset 11850 9cc4b8fa7bd79d316f0740a7c70ac539441b15cc
parent 11847 ac135b39813b65d722035b1eaa238b102e63f8ac
push id1839
push userbmo:moz-ian@perix.co.uk
push dateMon, 04 Dec 2017 12:41:10 +0000
reviewersgps
bugs1422487
hooks: Don't run FTL check on merges or backouts (bug 1422487), r?gps MozReview-Commit-ID: KUceFOyh4a0
hghooks/mozhghooks/check/prevent_ftl_changes.py
--- a/hghooks/mozhghooks/check/prevent_ftl_changes.py
+++ b/hghooks/mozhghooks/check/prevent_ftl_changes.py
@@ -45,31 +45,34 @@ class FTLCheck(PreTxnChangegroupCheck):
     @property
     def name(self):
         return 'ftl_check'
 
     def relevant(self):
         return self.repo_metadata['firefox_releasing']
 
     def pre(self):
-        pass
+        self.mergeOrBackout = False
 
     def check(self, ctx):
-        if len(ctx.parents()) > 1:
-            # Skip merge changesets
-            return True
-
-        if is_backout(ctx.description()):
-            # Ignore backouts
-            return True
-
-        if any(f.endswith('.ftl') for f in ctx.files()):
-            requal = parse_requal_reviewers(ctx.description())
-            reviewers = [nick for (name, nick) in FTL_DRIVERS]
-            if any(nick in reviewers for nick in requal):
+        if not self.mergeOrBackout:
+            if len(ctx.parents()) > 1:
+                # Skip merge changesets
+                self.mergeOrBackout = True
                 return True
 
-            print_banner(self.ui, 'error', FTL_COMMIT_FOUND)
-            return False
+            if is_backout(ctx.description()):
+                # Ignore backouts
+                self.mergeOrBackout = True
+                return True
+
+            if any(f.endswith('.ftl') for f in ctx.files()):
+                requal = parse_requal_reviewers(ctx.description())
+                reviewers = [nick for (name, nick) in FTL_DRIVERS]
+                if any(nick in reviewers for nick in requal):
+                    return True
+
+                print_banner(self.ui, 'error', FTL_COMMIT_FOUND)
+                return False
         return True
 
     def post_check(self):
         return True