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 <ago...@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 <e...@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
> 
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to