Current fix scan scripts scanned specified range in current(HEAD) branch. When users run it in an earlier branch, few patches were scanned.
This patch introduces optional <branch> argument, auto detects from range if not provided. Fixes: 752d8e097ec1 ("scripts: show fixes with release version of bug") Cc: Thomas Monjalon <tho...@monjalon.net> Cc: sta...@dpdk.org Signed-off-by: Xueming Li <xuemi...@nvidia.com> --- devtools/check-git-log.sh | 2 +- devtools/git-log-fixes.sh | 24 ++++++++++++++++++------ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/devtools/check-git-log.sh b/devtools/check-git-log.sh index 9988bf863d..b463110a90 100755 --- a/devtools/check-git-log.sh +++ b/devtools/check-git-log.sh @@ -51,7 +51,7 @@ commits=$(git log --format='%h' --reverse $range) headlines=$(git log --format='%s' --reverse $range) bodylines=$(git log --format='%b' --reverse $range) fixes=$(git log --format='%h %s' --reverse $range | grep -i ': *fix' | cut -d' ' -f1) -stablefixes=$($selfdir/git-log-fixes.sh $range | sed '/(N\/A)$/d' | cut -d' ' -f2) +stablefixes=$($selfdir/git-log-fixes.sh $range HEAD | sed '/(N\/A)$/d' | cut -d' ' -f2) tags=$(git log --format='%b' --reverse $range | grep -i -e 'by *:' -e 'fix.*:') bytag='\(Reported\|Suggested\|Signed-off\|Acked\|Reviewed\|Tested\)-by:' diff --git a/devtools/git-log-fixes.sh b/devtools/git-log-fixes.sh index 5fc57da913..9d2d0ef96c 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 the branch specified, otherwise any branch contains the range. 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" + +if [ -z "$branch" ] ; then + # last commit in range + range_last=$(git log --oneline v21.05-rc3..v21.05 |head -n1|cut -d' ' -f1) + # use first branch contains the commit + refbranch=$(git branch --contains $range_last -r --sort=-authordate |head -n1) +else + refbranch=$(git rev-parse --abbrev-ref $branch) +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 -- 2.25.1