Messages in this thread | | | Subject | Re: [PATCH 1/1] checkpatch: check for subject uniqueness in git repository. | From | Joe Perches <> | Date | Sat, 20 Sep 2014 09:07:23 -0700 |
| |
On Sat, 2014-09-20 at 12:31 +0200, Fabian Frederick wrote: > > On 16 September 2014 at 18:31 Joe Perches <joe@perches.com> wrote: > > On Tue, 2014-09-16 at 18:15 +0200, Fabian Frederick wrote: > > > > On 16 September 2014 at 05:22 Joe Perches <joe@perches.com> wrote: > > > > On Mon, 2014-09-15 at 20:43 +0200, Fabian Frederick wrote: > > > > > Adding patch subject uniqueness check in checkpatch --strict mode. > > > > > See Documentation/SubmittingPatches/globally-unique identifier. > > > > > > > > Perhaps something like this? > > [] > > > > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl > > [] > > > > + if ($check && $#git_commits < 1 && which("git") && -e ".git") { > > > > + my $output = `git log --no-color --format='%H %s' 2>&1`; > > > > + $output =~ s/^\s*//gm; > > > > + @git_commits = split("\n", $output); > > > > + } > > > > > Perfect ! :) > > > > Except for that _really, really_ long time to do the > > git log of all commits... > > > > Maybe the git log should be enabled only with another > > command-line option. > > > Hello Joe,
Dag Fabian:
> checkpatck does already execute git log in seed_camelcase_includes and > git_commit_info when .git exists
which takes almost no time
$ time git log --no-merges --pretty=format:"%h%n" -1 -- include 40182b1
real 0m0.013s user 0m0.008s sys 0m0.000s
and
$ time git log --no-color --format='%H %s' -1 ^HEAD 2>&1
real 0m0.013s user 0m0.004s sys 0m0.004s
vs
$ time git log --no-merges --pretty=format:"%H %s" > /dev/null 2>&1
real 0m19.386s user 0m17.264s sys 0m1.008s
> so we could add some specific option instead like --complete --verbose > --checkduplicates or something for this test ?
Maybe.
I'm still dubious about both the git use because of the runtime and the checkpatch use as it's after the fact.
The concept seems more suited to a git commit-msg hook to me. The runtime there is still a consideration too.
In a bit more detail:
If this modified checkpatch was run on a branch where the patch was committed, in this sort of sequence:
git checkout -b [some_branch] [make changes] git commit [etc] git format-patch -1 ./scripts/checkpatch.pl <patch from git format-patch>
then this new warning would trigger which seems senseless.
And in the case where multiple patches are done and then scanned with checkpatch in a single block, the damage has already been done and the defect was not found when it occurred.
Andrew? Do you have an opinion?
| |