From 5d65895d9cc5b180a4ccd93185f2ab3b60c3b853 Mon Sep 17 00:00:00 2001 From: Thomas Monjalon Date: Tue, 5 Sep 2017 00:05:32 +0200 Subject: [PATCH] devtools: fix version search with git < 2.7.0 The script git-log-fixes.sh (used in check-git-log.sh) looks for git tags to find the version where a bug is introduced. In DPDK 17.08, the script has been fixed to ignore tags from non current branch. It was using the option --merged which was introduced in git 2.7.0. As git 2.7.0 is not so old, a fallback is provided for some years. The fallback is replacing the tag --merged option by a branch filter. If the tag is found in the branch, the branch name is replaced by the tag. This script could be improved to allow using another reference branch, instead of hard coding HEAD branch (the current one). Fixes: 26857dabb3c9 ("devtools: ignore non merged tags for backport") Cc: stable@dpdk.org Signed-off-by: Thomas Monjalon Tested-by: Nelio Laranjeiro --- devtools/git-log-fixes.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/devtools/git-log-fixes.sh b/devtools/git-log-fixes.sh index 5800687419..cd5cf8939f 100755 --- a/devtools/git-log-fixes.sh +++ b/devtools/git-log-fixes.sh @@ -66,7 +66,16 @@ range="$*" # get major release version of a commit commit_version () # { - tag=$(git tag -l --contains $1 --merged | head -n1) + # use current branch as history reference + local refbranch=$(git rev-parse --abbrev-ref HEAD) + local tag=$( (git tag -l --contains $1 --merged $refbranch 2>&- || + # tag --merged option has been introduced in git 2.7.0 + # below is a fallback in case of old git version + for t in $(git tag -l --contains $1) ; do + git branch $refbranch --contains $t | + sed "s,.\+,$t," + done) | + head -n1) if [ -z "$tag" ] ; then # before -rc1 tag of release in progress make showversion | cut -d'.' -f-2 -- 2.20.1