summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2016-02-05 14:54:10 -0800
committerJunio C Hamano <gitster@pobox.com>2016-02-05 14:54:10 -0800
commit90b99869d4ab750b7de0250f02d4c3f08c86f61b (patch)
treef67e438274e8802d0f11e95a8e7df969f1c41bdb /t
parent7aae9ba6613c38d9f275955af80881fb67ddbd8a (diff)
parentaecad374ae7492cc7b2add5fa416d43e1f68c18e (diff)
downloadgit-90b99869d4ab750b7de0250f02d4c3f08c86f61b.tar.gz
Merge branch 'dk/reflog-walk-with-non-commit' into maint
"git reflog" incorrectly assumed that all objects that used to be at the tip of a ref must be commits, which caused it to segfault. * dk/reflog-walk-with-non-commit: reflog-walk: don't segfault on non-commit sha1's in the reflog
Diffstat (limited to 't')
-rwxr-xr-xt/t1410-reflog.sh13
1 files changed, 13 insertions, 0 deletions
diff --git a/t/t1410-reflog.sh b/t/t1410-reflog.sh
index b79049f6f6..17a194bfa6 100755
--- a/t/t1410-reflog.sh
+++ b/t/t1410-reflog.sh
@@ -325,4 +325,17 @@ test_expect_success 'parsing reverse reflogs at BUFSIZ boundaries' '
test_cmp expect actual
'
+test_expect_success 'no segfaults for reflog containing non-commit sha1s' '
+ git update-ref --create-reflog -m "Creating ref" \
+ refs/tests/tree-in-reflog HEAD &&
+ git update-ref -m "Forcing tree" refs/tests/tree-in-reflog HEAD^{tree} &&
+ git update-ref -m "Restoring to commit" refs/tests/tree-in-reflog HEAD &&
+ git reflog refs/tests/tree-in-reflog
+'
+
+test_expect_failure 'reflog with non-commit entries displays all entries' '
+ git reflog refs/tests/tree-in-reflog >actual &&
+ test_line_count = 3 actual
+'
+
test_done