From 0836a8e55bf8becd30a7d00d453435e4c6959b14 Mon Sep 17 00:00:00 2001
From: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Date: Tue, 11 Mar 2014 20:09:24 +0100
Subject: [PATCH] complain about Reviewed-by footers

unlike previously thought, gerrit won't eliminate known bogus footers,
so they would stay behind. consequently, complain about them loudly.

note that the footers are just fine above a "(cherry picked from ...)"
line, as we want to preserve the original approvals.

Change-Id: I7856810adb3e3b3e91e539eb626375dd32648460
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
---
 git-hooks/sanitize-commit | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/git-hooks/sanitize-commit b/git-hooks/sanitize-commit
index 44a8c3b..b9aa736 100755
--- a/git-hooks/sanitize-commit
+++ b/git-hooks/sanitize-commit
@@ -91,7 +91,7 @@ sub complain()
 
 my $lineno = 0;
 my $iswip = defined($cfg{wip});
-my $revok = defined($cfg{revby});
+my $badrev = 0;
 my $badlog = defined($cfg{log});
 my $spell_check = !defined($cfg{spell});
 my $parents = 0;
@@ -191,9 +191,12 @@ while (<MSG>) {
                 &complain("2nd line of log message is not empty", "log");
             }
         } else {
-            if (!$revok && /^Reviewed-by: *(pending|TBD)?$/i) {
-                &complain("Bogus or empty Reviewed-by header", "revby", 1);
-                $revok = 1;
+            if (!$badrev && /^Reviewed-by:/i) {
+                $badrev = 1;
+            }
+            if (/^\(cherry[- ]picked /) {
+                # Some bad footers are ok above cherry-pick lines.
+                $badrev = 0;
             }
         }
     }
@@ -215,6 +218,9 @@ if ($badauthor) {
 if ($badcommitter) {
     &complain("Bogus committer email", "email", 1);
 }
+if ($badrev && !defined($cfg{revby})) {
+    &complain("Bogus Reviewed-by footer", "revby", 1);
+}
 
 {
     local $file = 'log message';
-- 
GitLab