diff mbox

checkpatch.pl: Add check for Change-Id

Message ID 1395255293-3419-1-git-send-email-cov@codeaurora.org (mailing list archive)
State New, archived
Headers show

Commit Message

Christopher Covington March 19, 2014, 6:54 p.m. UTC
A commit hook for the Gerrit code review server inserts change
identifiers so Gerrit can track patches through multiple revisions.
These identifiers are noise in the context of the upstream kernel.
(Many Gerrit servers are private. Even given a public instance,
given only a Change-Id, one must guess which server a change was
tracked on. Patches submitted to the Linux kernel mailing lists
should be able to stand on their own. If it's truly useful to
reference code review on a Gerrit server, a URL is a much clearer
way to do so.) Thus, issue an error when a Change-Id: line is
encountered.

Signed-off-by: Christopher Covington <cov@codeaurora.org>
---
 scripts/checkpatch.pl | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Joe Perches March 20, 2014, 10:08 a.m. UTC | #1
On Wed, 2014-03-19 at 14:54 -0400, Christopher Covington wrote:
> A commit hook for the Gerrit code review server inserts change
> identifiers so Gerrit can track patches through multiple revisions.
> These identifiers are noise in the context of the upstream kernel.
> (Many Gerrit servers are private. Even given a public instance,
> given only a Change-Id, one must guess which server a change was
> tracked on. Patches submitted to the Linux kernel mailing lists
> should be able to stand on their own. If it's truly useful to
> reference code review on a Gerrit server, a URL is a much clearer
> way to do so.) Thus, issue an error when a Change-Id: line is
> encountered.
[]
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
[]
> @@ -1891,6 +1891,12 @@ sub process {
>  			}
>  		}
>  
> +# Check for unwanted Gerrit info
> +		if ($line =~ /^\s*change-id:/i) {
> +			ERROR("BAD_SIGN_OFF",
> +			      "Remove Gerrit Change-Id's before submitting upstream.\n" . $herecurr);
> +		}
> +

I think this needs an "$in_commit_log" test added

		if ($in_commit_log &&
		    $line =~ /^\s*change-id:/i) {

And maybe use a separate "TYPE", not "BAD_SIGN_OFF".
Maybe "GERRIT_CHANGE_ID"
Christopher Covington March 21, 2014, 5:24 p.m. UTC | #2
Hi Joe,

On 03/20/2014 06:08 AM, Joe Perches wrote:
> On Wed, 2014-03-19 at 14:54 -0400, Christopher Covington wrote:
>> A commit hook for the Gerrit code review server inserts change
>> identifiers so Gerrit can track patches through multiple revisions.
>> These identifiers are noise in the context of the upstream kernel.
>> (Many Gerrit servers are private. Even given a public instance,
>> given only a Change-Id, one must guess which server a change was
>> tracked on. Patches submitted to the Linux kernel mailing lists
>> should be able to stand on their own. If it's truly useful to
>> reference code review on a Gerrit server, a URL is a much clearer
>> way to do so.) Thus, issue an error when a Change-Id: line is
>> encountered.
> []
>> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> []
>> @@ -1891,6 +1891,12 @@ sub process {
>>  			}
>>  		}
>>  
>> +# Check for unwanted Gerrit info
>> +		if ($line =~ /^\s*change-id:/i) {
>> +			ERROR("BAD_SIGN_OFF",
>> +			      "Remove Gerrit Change-Id's before submitting upstream.\n" . $herecurr);
>> +		}
>> +
> 
> I think this needs an "$in_commit_log" test added
> 
> 		if ($in_commit_log &&
> 		    $line =~ /^\s*change-id:/i) {

This would mean that Change-Id lines that follow a Signed-off-by line will not
get caught. I expect that the common case is to use the commit hook shipped
with Gerrit [1], which inserts the Change-Id above the Signed-off-by, so the
proposed change is fine by me.

1.
https://gerrit.googlesource.com/gerrit/+/master/gerrit-server/src/main/resources/com/google/gerrit/server/tools/root/hooks/commit-msg

> And maybe use a separate "TYPE", not "BAD_SIGN_OFF".
> Maybe "GERRIT_CHANGE_ID"
> 

Will do.

Thanks,
Christopher
diff mbox

Patch

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 464dcef..afd6dde 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -1891,6 +1891,12 @@  sub process {
 			}
 		}
 
+# Check for unwanted Gerrit info
+		if ($line =~ /^\s*change-id:/i) {
+			ERROR("BAD_SIGN_OFF",
+			      "Remove Gerrit Change-Id's before submitting upstream.\n" . $herecurr);
+		}
+
 # Check for wrappage within a valid hunk of the file
 		if ($realcnt != 0 && $line !~ m{^(?:\+|-| |\\ No newline|$)}) {
 			ERROR("CORRUPTED_PATCH",