On Thu, 2016-03-03 at 11:00 +0800, Jianyu Zhan wrote:
> Hi, Joe,
> 
> recently in this patch https://lkml.org/lkml/2016/3/2/281,
> 
> I found the original author of the modified code was not
> suggested as a patch reviewer.
> 
> This surprised me at first.  But later I realized that it is not trivial
> to define "original author", since the last modification might be
> just code polishing.  To dig out the original author, we might need
> go up the commit history and git must be equipped with ability of pattern
> recognization to analyze code.
> 
> What do you think?

There are many options to the get_maintainer script.
You can see all of them with "./scripts/get_maintainer.pl --help"

Many are not enabled because run-time can be very long as
running various git commands can take awhile to complete.

$ ./scripts/get_maintainer.pl --git-blame <patch|-f <file>>

with your patch get_maintainer.pl and --git-blame gives:

$ ./scripts/get_maintainer.pl ~/1.diff --git-blame
Thomas Gleixner <t...@linutronix.de> 
(commit_signer:20/19=100%,authored:7/19=37%,added_lines:73/248=29%,removed_lines:38/119=32%)
Peter Zijlstra <pet...@infradead.org> (commit_signer:3/19=16%,authored:1/19=5%)
Andrew Morton <a...@linux-foundation.org> (commit_signer:3/19=16%,modified 
commits:2/3=67%)
Davidlohr Bueso <d...@stgolabs.net> 
(commit_signer:3/19=16%,authored:3/19=16%,added_lines:113/248=46%,removed_lines:20/119=17%)
Ingo Molnar <mi...@kernel.org> (commit_signer:2/19=11%,modified commits:2/3=67%)
Dominik Dingel <din...@linux.vnet.ibm.com> (authored:1/19=5%)
Jann Horn <j...@thejh.net> (authored:1/19=5%)
Sebastian Andrzej Siewior <bige...@linutronix.de> (added_lines:29/248=12%)
"Kirill A. Shutemov" <kirill.shute...@linux.intel.com> 
(added_lines:14/248=6%,removed_lines:49/119=41%)
Darren Hart <dvh...@linux.intel.com> (modified commits:1/3=33%)
Stephen Hemminger <shemmin...@linux-foundation.org> (modified commits:1/3=33%)
Christian Borntraeger <bornt...@de.ibm.com> (modified commits:1/3=33%)
linux-kernel@vger.kernel.org (open list)

vs

$ ./scripts/get_maintainer.pl ~/1.diff
Thomas Gleixner <t...@linutronix.de> 
(commit_signer:20/19=100%,authored:7/19=37%,added_lines:73/248=29%,removed_lines:38/119=32%)
Davidlohr Bueso <d...@stgolabs.net> 
(commit_signer:3/19=16%,authored:3/19=16%,added_lines:113/248=46%,removed_lines:20/119=17%)
Peter Zijlstra <pet...@infradead.org> (commit_signer:3/19=16%)
Andrew Morton <a...@linux-foundation.org> (commit_signer:3/19=16%)
Ingo Molnar <mi...@kernel.org> (commit_signer:2/19=11%)
Rasmus Villemoes <li...@rasmusvillemoes.dk> (authored:1/19=5%)
Darren Hart <dvh...@linux.intel.com> (authored:1/19=5%)
kbuild test robot <fengguang...@intel.com> (authored:1/19=5%)
Sebastian Andrzej Siewior <bige...@linutronix.de> (added_lines:29/248=12%)
"Kirill A. Shutemov" <kirill.shute...@linux.intel.com> 
(added_lines:14/248=6%,removed_lines:49/119=41%)

running git blame alone gives:

$ git blame -L1927,+8 kernel/futex.c
^1da177e (Linus Torvalds        2005-04-16 15:20:36 -0700 1927) 
^1da177e (Linus Torvalds        2005-04-16 15:20:36 -0700 1928)         /* In 
the common case we don't take the spinlock, which is nice. */
42d35d48 (Darren Hart           2008-12-29 15:49:53 -0800 1929) retry:
^1da177e (Linus Torvalds        2005-04-16 15:20:36 -0700 1930)         
lock_ptr = q->lock_ptr;
e91467ec (Christian Borntraeger 2006-08-05 12:13:52 -0700 1931)         
barrier();
c80544dc (Stephen Hemminger     2007-10-18 03:07:05 -0700 1932)         if 
(lock_ptr != NULL) {
^1da177e (Linus Torvalds        2005-04-16 15:20:36 -0700 1933)                 
spin_lock(lock_ptr);
^1da177e (Linus Torvalds        2005-04-16 15:20:36 -0700 1934)                 
/*

with whitespace ignored, it gives:

$ git blame -w -L1927,+8 kernel/futex.c 
^1da177e (Linus Torvalds        2005-04-16 15:20:36 -0700 1927) 
^1da177e (Linus Torvalds        2005-04-16 15:20:36 -0700 1928)         /* In 
the common case we don't take the spinlock, which is nice. */
^1da177e (Linus Torvalds        2005-04-16 15:20:36 -0700 1929) retry:
^1da177e (Linus Torvalds        2005-04-16 15:20:36 -0700 1930)         
lock_ptr = q->lock_ptr;
e91467ec (Christian Borntraeger 2006-08-05 12:13:52 -0700 1931)         
barrier();
c80544dc (Stephen Hemminger     2007-10-18 03:07:05 -0700 1932)         if 
(lock_ptr != NULL) {
^1da177e (Linus Torvalds        2005-04-16 15:20:36 -0700 1933)                 
spin_lock(lock_ptr);
^1da177e (Linus Torvalds        2005-04-16 15:20:36 -0700 1934)                 
/*

so there's an argument that get_maintainer.pl should by default
ignore whitespace changes.

Reply via email to