git: add praise-qa patch

See patch description for details.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
diff --git a/git/0001-praise-qa.patch b/git/0001-praise-qa.patch
new file mode 100644
index 0000000..207b744
--- /dev/null
+++ b/git/0001-praise-qa.patch
@@ -0,0 +1,112 @@
+From: Wolfram Sang <wsa@the-dreams.de>
+Subject: [RFC for GIT] request-pull: add praise to people doing QA
+
+Getting enough quality assurance is likely one of the bigger upcoming tasks for
+the Linux Kernel development process in the near future. To improve the
+situation, praise the people already doing that by adding their names to pull
+requests in the same manner that patch authors are credited. Here is an
+example, I once sent out [1]:
+
+=== standard pull-request
+
+The following changes since commit a121103c922847ba5010819a3f250f1f7fc84ab8:
+
+...
+
+Vlad Tsyrklevich (1):
+      i2c: fix kernel memory disclosure in dev interface
+
+=== new stuff starts here
+
+with much appreciated quality assurance from
+----------------------------------------------------------------
+Andy Shevchenko (1):
+      (Rev.) i2c: piix4: Avoid race conditions with IMC
+
+Benjamin Tissoires (1):
+      (Test) i2c: do not enable fall back to Host Notify by default
+
+Vladimir Zapolskiy (1):
+      (Rev.) i2c: print correct device invalid address
+
+=== diffstat, ...
+
+This patch is a hack and while the general idea was not objected upstream, this
+implementation was obviously not applicable [2]. I fully understand that, but
+due to lack of bandwith and knowledge of git internals, I will simply keep
+using this patch. Maybe this is useful for you, too.
+
+Note: while this patch applies to the git v2.11.0 sourcecode, it can be easily
+hacked to work on distribution packages or already installed versions. You
+only need to adapt the filenames of the patched 'git-request-pull.sh' file.
+
+Happy hacking,
+
+   Wolfram
+
+[1] https://lkml.org/lkml/2017/1/15/55
+[2] https://lkml.org/lkml/2017/1/15/164
+
+Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
+---
+ git-praise-qa.awk   |   40 ++++++++++++++++++++++++++++++++++++++++
+ git-request-pull.sh |    1 +
+ 2 files changed, 41 insertions(+)
+
+Index: git-2.11.0/git-request-pull.sh
+===================================================================
+--- git-2.11.0.orig/git-request-pull.sh
++++ git-2.11.0/git-request-pull.sh
+@@ -155,6 +155,7 @@ then
+ fi &&
+ 
+ git shortlog ^$baserev $headrev &&
++git log --no-merges ^$baserev $headrev | git-praise-qa.awk &&
+ git diff -M --stat --summary $patch $merge_base..$headrev || status=1
+ 
+ exit $status
+Index: git-2.11.0/git-praise-qa.awk
+===================================================================
+--- /dev/null
++++ git-2.11.0/git-praise-qa.awk
+@@ -0,0 +1,40 @@
++#! /usr/bin/gawk -f
++# helper script to add a list of people who reviewed or tested patches to
++# git-request-pull.
++# Note: asorti() and length() with arrays are GNU extensions to awk
++# (c) Wolfram Sang, 2016-2017, GPL v2
++
++# New commit found, empty subject variable
++/^commit / { subject = "" }
++
++# Grab the subject line
++!subject && /^    / { subject = substr($0, 5); }
++
++# Scan for tags and get the type
++/^    Reviewed-by:/ { type = "Rev." }
++/^    Tested-by:/ { type = "Test" }
++
++# If tag and subject found, add it to list per contributor
++type && subject {
++	# Extract the name
++	sub(/^.*: /, ""); sub(/ <.*/, ""); name = $0;
++	# Collect tags given by 'name'
++	tags[name] = tags[name] "      (" type ") " subject "\n";
++	count[name]++;
++	# Done, clear flag
++	type = "";
++}
++
++END {
++	if (length(tags)) {
++		print "\nwith much appreciated quality assurance from"
++		print "----------------------------------------------------------------"
++		# Sort by names
++		asorti(tags, sorted_names);
++		# printout in git style
++		for (i in sorted_names) {
++			name = sorted_names[i];
++			print name " (" count[name] "):" "\n" tags[name];
++		}
++	}
++}