devtools: add fixes flag to commit listing
authorKevin Traynor <ktraynor@redhat.com>
Mon, 3 Feb 2020 15:59:55 +0000 (15:59 +0000)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 25 Feb 2020 16:24:49 +0000 (17:24 +0100)
During backporting, if the fixes or stable tag are missing,
it usually requires some investigation by stable maintainer
as to why.

The presence of a fixes tag may be known from whether the
originating release of the issue is printed at the end of the
line but with variable line lengths and nested partial fixes
it doesn't catch the eye.

When there are a large amount of commits, adding an aligned column
indicating the presence of a fixes tag beside the stable one makes
it easier to quickly see the patches requiring further investigation.

e.g.
20.02 8f33cbcfa S F net/i40e/base: fix buffer address (16.04)
20.02 4b3da9415 S F net/i40e/base: fix error message (1.7.0)
20.02 1da546c39 - F net/i40e/base: fix missing link modes (17.08)
20.02 79bfe7808 S F net/i40e/base: fix Tx descriptors number (1.7.0)
20.02 50126939c - F net/i40e/base: fix retrying logic (18.02)
20.02 dcd05da0a S F app/testpmd: fix GENEVE flow item (18.02)
20.02 b0b9fdad2 S - net/bnx2x: support secondary process (N/A)
20.02 f8279f47d S F net/netvsc: fix crash in secondary process (18.08)

Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
devtools/git-log-fixes.sh

index e37ee22..6d468d6 100755 (executable)
@@ -94,11 +94,23 @@ stable_tag () # <hash>
        fi
 }
 
+# print a marker for fixes tag presence
+fixes_tag () # <hash>
+{
+        if git log --format='%b' -1 $1 | grep -qi '^Fixes: *' ; then
+                echo 'F'
+        else
+                echo '-'
+        fi
+}
+
 git log --oneline --reverse $range |
 while read id headline ; do
        origins=$(origin_filter $id)
        stable=$(stable_tag $id)
-       [ "$stable" = "S" ] || [ -n "$origins" ] || echo "$headline" | grep -q fix || continue
+       fixes=$(fixes_tag $id)
+       [ "$stable" = "S" ] || [ "$fixes" = "F" ] || [ -n "$origins" ] || \
+               echo "$headline" | grep -q fix || continue
        version=$(commit_version $id)
        if [ -n "$origins" ] ; then
                origver="$(origin_version $origins)"
@@ -108,5 +120,5 @@ while read id headline ; do
        else
                origver='N/A'
        fi
-       printf '%s %7s %s %s (%s)\n' $version $id $stable "$headline" "$origver"
+       printf '%s %7s %s %s %s (%s)\n' $version $id $stable $fixes "$headline" "$origver"
 done