path: root/t/
diff options
authorJunio C Hamano <>2021-07-28 20:17:58 (GMT)
committerJunio C Hamano <>2021-07-28 20:17:58 (GMT)
commitc9d6d8a1938f86594b33785a8228d9f35ad457c8 (patch)
tree2b658bf0a8be2b3c2a736e6e4032acdb778da1aa /t/
parent01369fdfd3d0deec41c55306dae42f00dfbfa582 (diff)
parentd1ed8d6cee57c91ec770a8a183ed40c3ec867ac1 (diff)
Merge branch 'jk/log-decorate-optim'
Optimize "git log" for cases where we wasted cycles to load ref decoration data that may not be needed. * jk/log-decorate-optim: load_ref_decorations(): fix decoration with tags add_ref_decoration(): rename s/type/deco_type/ load_ref_decorations(): avoid parsing non-tag objects object.h: add lookup_object_by_type() function object.h: expand docstring for lookup_unknown_object() log: avoid loading decorations for userformats that don't need it pretty.h: update and expand docstring for userformat_find_requirements()
Diffstat (limited to 't/')
1 files changed, 14 insertions, 0 deletions
diff --git a/t/ b/t/
index 39e746f..9dfead9 100755
--- a/t/
+++ b/t/
@@ -1915,6 +1915,20 @@ test_expect_success '--exclude-promisor-objects does not BUG-crash' '
test_must_fail git log --exclude-promisor-objects source-a
+test_expect_success 'log --decorate includes all levels of tag annotated tags' '
+ git checkout -b branch &&
+ git commit --allow-empty -m "new commit" &&
+ git tag lightweight HEAD &&
+ git tag -m annotated annotated HEAD &&
+ git tag -m double-0 double-0 HEAD &&
+ git tag -m double-1 double-1 double-0 &&
+ cat >expect <<-\EOF &&
+ HEAD -> branch, tag: lightweight, tag: double-1, tag: double-0, tag: annotated
+ git log -1 --format="%D" >actual &&
+ test_cmp expect actual
test_expect_success 'log --end-of-options' '
git update-ref refs/heads/--source HEAD &&
git log --end-of-options --source >actual &&