[Mesa-dev] [PATCH] bin/get-fixes-pick-list.sh: don't warn if more than one, go over them
Eric Engestrom
eric at engestrom.ch
Sun May 7 23:48:44 UTC 2017
On Saturday, 2017-05-06 17:09:35 +0300, Andres Gomez wrote:
> 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.
This was on my todo list, thanks for fixing this :)
>
> Signed-off-by: Andres Gomez <agomez at igalia.com>
> ---
> bin/get-fixes-pick-list.sh | 51 +++++++++++++++++++++++-----------------------
> 1 file changed, 26 insertions(+), 25 deletions(-)
>
> diff --git a/bin/get-fixes-pick-list.sh b/bin/get-fixes-pick-list.sh
> index f1398f320c..cf95f28377 100755
> --- a/bin/get-fixes-pick-list.sh
> +++ b/bin/get-fixes-pick-list.sh
> @@ -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`
This will break when there are line breaks within a `Fixes:`. Consider
something like the following:
Fixes: ddb99127a6f6c6d0284f3395e0b06aed575f0ecd ("egl/x11: Honor the
EGL_PLATFORM_X11_SCREEN_EXT attribute")
I'm not sure how best to fix this though. Replace newlines that are not
followed by `Fixes:` with a space, before splitting and parsing each
line?
I guess this is better than what we currently have, and it won't fail
more than it would before, so it's good enough for now;
Reviewed-by: Eric Engestrom <eric at engestrom.ch>
> + 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
Ha, I'm 90% sure I would've missed this!
> fi
>
> - printf "Commit \"%s\" fixes %s\n" \
> - "`git log -n1 --pretty=oneline $sha`" \
> - "$id"
> - fi
> + done
>
> done
>
> --
> 2.11.0
>
More information about the mesa-dev
mailing list