The only thing out of the ordinary with git-describe is the --abbrev=0
special-case.
Signed-off-by: Ævar Arnfjörð Bjarmason <redacted>
---
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