From: Đoàn Trần Công Danh Date: Thu, 15 Apr 2021 15:33:23 GMT Subject: Re: [PATCH 06/16] test-lib functions: add an --annotated-tag option to "test_commit" Message-ID: In-Reply-To: On 2021-04-12 13:08:55+0200, Ævar Arnfjörð Bjarmason wrote: > git branch B A^0 > diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh > index fa3e3e975fd..a0fcc383d0b 100644 > --- a/t/test-lib-functions.sh > +++ b/t/test-lib-functions.sh > @@ -180,6 +180,10 @@ debug () { > # --no-tag > # Do not tag the resulting commit, if supplied giving the > # optional "" argument is an error. This comment applied to previous patch, but I think we need this patch to justify for optional "" argument is an error for "--no-tag" ----8<---- diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh index a0fcc383d0..ed0a4e5e5d 100644 --- a/t/test-lib-functions.sh +++ b/t/test-lib-functions.sh @@ -253,6 +253,10 @@ test_commit () { $signoff -m "$1" && case "$tag" in none) + if test -z "$4" + then + BUG " given to test_commit --no-tag" + fi ;; light) git ${indir:+ -C "$indir"} tag "${4:-$1}" ----8<---- > +# --annotate > +# Create an annotated tag with "--annotate -m ". Calls > +# test_tick between making the commit and tag unless --notick is > +# given. > # > # This will commit a file with the given contents and the given commit > # message, and tag the resulting commit with the given tag name. > @@ -192,7 +196,7 @@ test_commit () { > author= && > signoff= && > indir= && > - no_tag= && > + tag=light && > while test $# != 0 > do > case "$1" in > @@ -220,7 +224,10 @@ test_commit () { > shift > ;; > --no-tag) > - no_tag=yes > + tag=none > + ;; > + --annotate) > + tag=annotate > ;; > *) > break > @@ -244,10 +251,20 @@ test_commit () { > git ${indir:+ -C "$indir"} commit \ > ${author:+ --author "$author"} \ > $signoff -m "$1" && > - if test -z "$no_tag" > - then > + case "$tag" in > + none) > + ;; > + light) > git ${indir:+ -C "$indir"} tag "${4:-$1}" > - fi > + ;; > + annotate) > + if test "$tag$notick" = "annotate" Perhap I'm missing something, however, I couldn't get the reason for inserting "$tag" here. I wonder what wrong with: if test -z "$notick" then test_tick fi && > + then > + test_tick > + fi && > + git ${indir:+ -C "$indir"} tag -a -m "$1" "${4:-$1}" > + ;; > + esac > } > > # Call test_merge with the arguments " ", where > -- > 2.31.1.634.gb41287a30b0 > -- Danh