[dpdk-stable] [PATCH v3 2/2] devtools: fix patches missing if range newer than HEAD
Thomas Monjalon
thomas at monjalon.net
Sat Nov 26 22:44:26 CET 2022
Someone to help with review of this patch please?
Is there a real need?
11/08/2021 13:22, Xueming Li:
> Current fix scan scripts used HEAD branch as history reference.
> When users ran it in an earlier branch, few patches were scanned
> due to the fixes in the range are newer and not merged to current
> branch.
>
> This patch introduces optional <branch> argument, default to HEAD
> if not specified. Checks the <range> specified in parameter must
> being merged in <branch>.
>
> Fixes: 752d8e097ec1 ("scripts: show fixes with release version of bug")
> Cc: Thomas Monjalon <thomas at monjalon.net>
> Cc: stable at dpdk.org
> Cc: Christian Ehrhardt <christian.ehrhardt at canonical.com>
>
> Signed-off-by: Xueming Li <xuemingl at nvidia.com>
> ---
> devtools/git-log-fixes.sh | 26 +++++++++++++++++++-------
> 1 file changed, 19 insertions(+), 7 deletions(-)
>
> diff --git a/devtools/git-log-fixes.sh b/devtools/git-log-fixes.sh
> index 153ba5b438..dbed4b6419 100755
> --- a/devtools/git-log-fixes.sh
> +++ b/devtools/git-log-fixes.sh
> @@ -4,7 +4,7 @@
>
> print_usage ()
> {
> - echo "usage: $(basename $0) [-h] <git_range>"
> + echo "usage: $(basename $0) [-h] <git_range> [<branch>]"
> }
>
> print_help ()
> @@ -15,6 +15,7 @@ print_help ()
> Find fixes to backport on previous versions.
> It looks for the word "fix" in the headline or a tag "Fixes" or "Reverts".
> The oldest bug origin is printed as well as partially fixed versions.
> + It looks into current branch or the branch specified.
> END_OF_HELP
> }
>
> @@ -33,14 +34,23 @@ while getopts h ARG ; do
> done
> shift $(($OPTIND - 1))
> [ $# -ge 1 ] || usage_error 'range argument required'
> -range="$*"
> +range="$1"
> +branch="$2"
> +
> +# default to current branch as history reference
> +[ -n "$branch" ] || branch="HEAD"
> +# get real brnach name
> +refbranch=$(git rev-parse --abbrev-ref $branch)
> +range_last=$(git rev-parse $range | head -n1)
> +if ! git branch -a --contains $range_last | grep -q -e " $refbranch$" -e " remotes/$refbranch$"; then
> + echo "range $range not included by branch $refbranch"
> + exit 1
> +fi
>
> # get major release version of a commit
> commit_version () # <hash>
> {
> local VER="v*.*"
> - # use current branch as history reference
> - local refbranch=$(git rev-parse --abbrev-ref HEAD)
> local tag=$( (git tag -l "$VER" --contains $1 --sort=creatordate --merged $refbranch 2>&- ||
> # tag --merged option has been introduced in git 2.7.0
> # below is a fallback in case of old git version
> @@ -49,9 +59,11 @@ commit_version () # <hash>
> sed "s,.\+,$t,"
> done) |
> head -n1)
> - if [ -z "$tag" ] ; then
> - # before -rc1 tag of release in progress
> - cat VERSION | cut -d'.' -f-2
> + if [ -z "$tag" ]; then
> + if [ "$branch" = 'HEAD' ]; then
> + # before -rc1 tag of release in progress
> + cat VERSION | cut -d'.' -f-2
> + fi
> else
> echo $tag | sed 's,^v,,' | sed 's,-rc.*,,'
> fi
>
More information about the stable
mailing list