When run under a kernel repository which has a stable repository in remote, data for stable tags such as v6.6.1, v6.6.2, v6.6.3, etc. are collected as well as those for mainline releases. Refactor the grep pattern so that only v2.6.m and v3.n, v4.n, and later are listed in $tags. Use the nice -V option of sort instead of hard-to-parse -k options. Factor out starting point version to SINCE, which can be overridden by setting it as an env or shell variable. This should continue to work with v10.0 and beyond as long as mainline sticks with current scheme of release numbering. Signed-off-by: Akira Yokosawa <akiyks@xxxxxxxxx> --- CodeSamples/formal/rcutorture.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/CodeSamples/formal/rcutorture.sh b/CodeSamples/formal/rcutorture.sh index 23686805..5e568e24 100644 --- a/CodeSamples/formal/rcutorture.sh +++ b/CodeSamples/formal/rcutorture.sh @@ -20,10 +20,18 @@ # # Copyright (c) 2019 Paul E. McKenney, Facebook. -tags="`git tag -l | grep '^v' | grep -v -e - | grep -v '\..*\..*\.' | grep -v '2.6.11' | sort -k1.2,1.2n -k1.4n`" +# Override by saying, e.g.: +# "SINCE=v6 sh <path of this script>" +: ${SINCE:=v2.6.12} + +tags="`git tag -l | grep -E -e '^v(2\.6|[3-9]|[1-9][0-9]+)\.[0-9]+$' | sort -V`" for t in $tags do + tagsince=`echo "$SINCE\n$t" | sort -V | head -n 1` + if [ $tagsince != $SINCE ] ; then + continue + fi git reset --hard $t > /dev/null 2>&1 nontorture="`ls kernel/*rcu*.* kernel/rcu/* include/linux/*rcu* 2> /dev/null | grep -v torture | grep -v rcuperf | grep -v refperf | grep -v rcuscale | grep -v refscale | grep -v Makefile | grep -v Kconfig`" ntn="`wc -l $nontorture 2> /dev/null | tail -1 | awk '{ print $1 }'`" base-commit: 2eb3375d38e20694912f3f5fdbb744a7079c62e6 -- 2.34.1