The only thing out of the ordinary with git-describe is the --abbrev=0 special-case. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> --- t/t0014-abbrev.sh | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/t/t0014-abbrev.sh b/t/t0014-abbrev.sh index d8b060d922..645bcca1d1 100755 --- a/t/t0014-abbrev.sh +++ b/t/t0014-abbrev.sh @@ -16,6 +16,10 @@ nocaret() { sed 's/\^//' } +sed_g_tr_d_n() { + sed 's/.*g//' | tr_d_n +} + test_expect_success 'setup' ' test_commit A && git tag -a -mannotated A.annotated && @@ -178,4 +182,25 @@ do " done +test_expect_success 'describe core.abbrev and --abbrev special cases' ' + # core.abbrev=0 behaves as usual... + test_must_fail git -c core.abbrev=0 describe && + + # ...but --abbrev=0 is special-cased to print the nearest tag, + # not fall back on "4" like git-log. + echo A.annotated >expected && + git describe --abbrev=0 >actual && + test_cmp expected actual +' + +for i in $(test_seq 4 40) +do + test_expect_success "describe core.abbrev=$i and --abbrev=$i" " + git -c core.abbrev=$i describe | sed_g_tr_d_n >describe && + test_byte_count = $i describe && + git describe --abbrev=$i | sed_g_tr_d_n >describe && + test_byte_count = $i describe + " +done + test_done -- 2.17.0.290.gded63e768a