From: Joe Perches <joe@perches.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org, Kent Overstreet <kmo@daterainc.com>
Subject: Re: diffs in changelogs
Date: Thu, 11 Jun 2015 20:12:59 -0700 [thread overview]
Message-ID: <1434078779.2972.23.camel@perches.com> (raw)
In-Reply-To: <20150611134006.9df79a893e3636019ad2759e@linux-foundation.org>
On Thu, 2015-06-11 at 13:40 -0700, Andrew Morton wrote:
> People often put diff snippets in changelogs. This causes problems
> when one tries to apply a file containing both the changelog and the
> diff because patch(1) tries to apply the diff which it found in the
> changelog.
That
> eg, something like
>
> git show d24a6e1087030b6da | patch -p1
>
> will go haywire.
>
> So can we please have a checkpatch test warning people away from doing
> this?
>
>
> patch(1) seems to be really promiscuous in its detection of a patch. I
> haven't had much success searching for "^--- " and similar. What works
> best for me is searching for "^[whitespace]@@ -".
I don't think that's a good test.
Coccinelle uses @@
And how did that commit actually get applied?
I tried applying it to a new branch checked out at
ce2b3f595e1c56639085645e0130426e443008c0, it fails.
Anyway, maybe:
---
scripts/checkpatch.pl | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 69c4716..2d87e37 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2399,6 +2399,18 @@ sub process {
$in_commit_log = 1;
}
+# Check if the commit log has a diff which confuse patch
+
+ print("icl: <$in_commit_log> line: <$line>\n");
+ if ($in_commit_log &&
+ (($line =~ m@^\s+diff\b.*a/[\w/]+@ &&
+ $line =~ m@^\s+diff\b.*a/([\w/]+)\s+b/$1\b@) ||
+ $line =~ m@^\s*(?:\-\-\-\s+a/|\+\+\+\s+b/)@ ||
+ $line =~ m/^\s*\@\@ \-\d+,\d+ \+\d+,\d+ \@\@/)) {
+ ERROR("DIFF_IN_COMMIT_MSG",
+ "It seems a diff exists in the commit message. This can confuse patch\n" . $herecurr);
+ }
+
# Check if there is UTF-8 in a commit log when a mail header has explicitly
# declined it, i.e defined some charset where it is missing.
if ($in_header_lines &&
next prev parent reply other threads:[~2015-06-12 3:13 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-11 20:40 diffs in changelogs Andrew Morton
2015-06-12 3:12 ` Joe Perches [this message]
2015-06-12 3:21 ` Andrew Morton
2015-06-12 3:54 ` Joe Perches
2015-06-12 17:51 ` [PATCH] checkpatch: Emit an error when there's a diff in a changelog Joe Perches
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1434078779.2972.23.camel@perches.com \
--to=joe@perches.com \
--cc=akpm@linux-foundation.org \
--cc=kmo@daterainc.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox