get-typod-pick-list.sh: add new script
authorEmil Velikov <emil.velikov@collabora.com>
Fri, 16 Dec 2016 15:08:30 +0000 (15:08 +0000)
committerEmil Velikov <emil.l.velikov@gmail.com>
Fri, 13 Jan 2017 03:07:48 +0000 (03:07 +0000)
Typos do happen as people nominate patches for stable. This script aims
to catch most of those.

Due to the subtle nature of things, one has to pay special attention to
the output, similar to get-extra-pick-list.sh.

At the moment only the following is handled:
 grep -i "CC:.*mesa-dev"

Cc: 12.0 13.0 <mesa-stable@lists.freedesktop.org>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
bin/get-typod-pick-list.sh [new file with mode: 0755]

diff --git a/bin/get-typod-pick-list.sh b/bin/get-typod-pick-list.sh
new file mode 100755 (executable)
index 0000000..2fe3d89
--- /dev/null
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+# Script for generating a list of candidates which have typos in the nomination line
+#
+# Usage examples:
+#
+# $ bin/get-typod-pick-list.sh
+# $ bin/get-typod-pick-list.sh > picklist
+# $ bin/get-typod-pick-list.sh | tee picklist
+
+# NB:
+# This script intentionally _never_ checks for specific version tag
+# Should we consider folding it with the original get-pick-list.sh
+
+# Grep for commits with "cherry picked from commit" in the commit message.
+git log --reverse --grep="cherry picked from commit" origin/master..HEAD |\
+       grep "cherry picked from commit" |\
+       sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked
+
+# Grep for commits that were marked as a candidate for the stable tree.
+git log --reverse --pretty=%H -i --grep='^CC:.*mesa-dev' HEAD..origin/master |\
+while read sha
+do
+       # Check to see whether the patch is on the ignore list.
+       if [ -f bin/.cherry-ignore ] ; then
+               if grep -q ^$sha bin/.cherry-ignore ; then
+                       continue
+               fi
+       fi
+
+       # Check to see if it has already been picked over.
+       if grep -q ^$sha already_picked ; then
+               continue
+       fi
+
+       git log -n1 --pretty=oneline $sha | cat
+done
+
+rm -f already_picked