revision: new rev^-n shorthand for rev^n..rev
[gitweb.git] / t / t1410-reflog.sh
index fbed8d7fb75a203383647499f2816ddf16080df3..553e26d9ceb83fc6529beb95ff71ffa0a899a166 100755 (executable)
@@ -325,4 +325,48 @@ 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_expect_success 'reflog expire operates on symref not referrent' '
+       git branch -l the_symref &&
+       git branch -l referrent &&
+       git update-ref referrent HEAD &&
+       git symbolic-ref refs/heads/the_symref refs/heads/referrent &&
+       test_when_finished "rm -f .git/refs/heads/referrent.lock" &&
+       touch .git/refs/heads/referrent.lock &&
+       git reflog expire --expire=all the_symref
+'
+
+test_expect_success 'continue walking past root commits' '
+       git init orphanage &&
+       (
+               cd orphanage &&
+               cat >expect <<-\EOF &&
+               HEAD@{0} commit (initial): orphan2-1
+               HEAD@{1} commit: orphan1-2
+               HEAD@{2} commit (initial): orphan1-1
+               HEAD@{3} commit (initial): initial
+               EOF
+               test_commit initial &&
+               git checkout --orphan orphan1 &&
+               test_commit orphan1-1 &&
+               test_commit orphan1-2 &&
+               git checkout --orphan orphan2 &&
+               test_commit orphan2-1 &&
+               git log -g --format="%gd %gs" >actual &&
+               test_cmp expect actual
+       )
+'
+
 test_done