bin/get-fixes-pick-list.sh: don't warn if more than one, go over them
authorAndres Gomez <agomez@igalia.com>
Sat, 6 May 2017 14:09:35 +0000 (17:09 +0300)
committerAndres Gomez <agomez@igalia.com>
Mon, 8 May 2017 08:28:17 +0000 (11:28 +0300)
If an identified commit was having more than one fix, we would warn
about that and only treat the first.

Now, we don't warn but treat all of them.

Signed-off-by: Andres Gomez <agomez@igalia.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
bin/get-fixes-pick-list.sh

index f1398f320c8381527ee88e9ff95ef8f49a75707d..cf95f283771c4fcc3c1db5a7384d8ddbf4307f79 100755 (executable)
@@ -33,37 +33,38 @@ do
 
        # For each one try to extract the tag
        fixes_count=`git show $sha | grep -i "fixes:" | wc -l`
-       if [ "x$fixes_count" != x1 ] ; then
-               printf "WARNING: Commit \"%s\" has more than one Fixes tag\n" \
-                      "`git log -n1 --pretty=oneline $sha`"
-       fi
-       fixes=`git show $sha | grep -i "fixes:" | head -n 1`
-       # The following sed/cut combination is borrowed from GregKH
-       id=`echo ${fixes} | sed -e 's/^[ \t]*//' | cut -f 2 -d ':' | sed -e 's/^[ \t]*//' | cut -f 1 -d ' '`
+       while [ $fixes_count -gt 0 ] ; do
+               fixes=`git show $sha | grep -i "fixes:" | tail -n $fixes_count | head -n 1`
+               fixes_count=$(($fixes_count-1))
+               # The following sed/cut combination is borrowed from GregKH
+               id=`echo ${fixes} | sed -e 's/^[ \t]*//' | cut -f 2 -d ':' | sed -e 's/^[ \t]*//' | cut -f 1 -d ' '`
 
-       # Bail out if we cannot find suitable id.
-       # Any specific validation the $id is valid and not some junk, is
-       # implied with the follow up code
-       if [ "x$id" = x ] ; then
-               continue
-       fi
+               # Bail out if we cannot find suitable id.
+               # Any specific validation the $id is valid and not some junk, is
+               # implied with the follow up code
+               if [ "x$id" = x ] ; then
+                       continue
+               fi
 
-       # Check if the offending commit is in branch.
+               # Check if the offending commit is in branch.
 
-       # Be that cherry-picked ...
-       # ... or landed before the branchpoint.
-       if grep -q ^$id already_picked ||
-          grep -q ^$id already_landed ; then
+               # Be that cherry-picked ...
+               # ... or landed before the branchpoint.
+               if grep -q ^$id already_picked ||
+                  grep -q ^$id already_landed ; then
 
-               # Finally nominate the fix if it hasn't landed yet.
-               if grep -q ^$sha already_picked ; then
-                       continue
+                       # Finally nominate the fix if it hasn't landed yet.
+                       if grep -q ^$sha already_picked ; then
+                               continue
+                       fi
+
+                       printf "Commit \"%s\" fixes %s\n" \
+                              "`git log -n1 --pretty=oneline $sha`" \
+                              "$id"
+                       fixes_count=0
                fi
 
-               printf "Commit \"%s\" fixes %s\n" \
-                      "`git log -n1 --pretty=oneline $sha`" \
-                      "$id"
-       fi
+       done
 
 done