l10n: sv.po: Update Swedish translation (3288t0f0u)
[gitweb.git] / t / t6120-describe.sh
index 0a8f754100ab9a68a81d95809d8b4eaaf0e2ee1d..3e3fb462a098c01c72270acbb276abd2df225a66 100755 (executable)
@@ -229,6 +229,31 @@ test_expect_success 'name-rev with exact tags' '
        test_cmp expect actual
 '
 
+test_expect_success 'name-rev --all' '
+       >expect.unsorted &&
+       for rev in $(git rev-list --all)
+       do
+               git name-rev $rev >>expect.unsorted
+       done &&
+       sort <expect.unsorted >expect &&
+       git name-rev --all >actual.unsorted &&
+       sort <actual.unsorted >actual &&
+       test_cmp expect actual
+'
+
+test_expect_success 'name-rev --stdin' '
+       >expect.unsorted &&
+       for rev in $(git rev-list --all)
+       do
+               name=$(git name-rev --name-only $rev) &&
+               echo "$rev ($name)" >>expect.unsorted
+       done &&
+       sort <expect.unsorted >expect &&
+       git rev-list --all | git name-rev --stdin >actual.unsorted &&
+       sort <actual.unsorted >actual &&
+       test_cmp expect actual
+'
+
 test_expect_success 'describe --contains with the exact tags' '
        echo "A^0" >expect &&
        tag_object=$(git rev-parse refs/tags/A) &&
@@ -279,9 +304,74 @@ test_expect_success 'describe chokes on severely broken submodules' '
        mv .git/modules/sub1/ .git/modules/sub_moved &&
        test_must_fail git describe --dirty
 '
-test_expect_success 'describe ignoring a borken submodule' '
+test_expect_success 'describe ignoring a broken submodule' '
        git describe --broken >out &&
+       test_when_finished "mv .git/modules/sub_moved .git/modules/sub1" &&
        grep broken out
 '
 
+test_expect_success 'describe a blob at a directly tagged commit' '
+       echo "make it a unique blob" >file &&
+       git add file && git commit -m "content in file" &&
+       git tag -a -m "latest annotated tag" unique-file &&
+       git describe HEAD:file >actual &&
+       echo "unique-file:file" >expect &&
+       test_cmp expect actual
+'
+
+test_expect_success 'describe a blob with its first introduction' '
+       git commit --allow-empty -m "empty commit" &&
+       git rm file &&
+       git commit -m "delete blob" &&
+       git revert HEAD &&
+       git commit --allow-empty -m "empty commit" &&
+       git describe HEAD:file >actual &&
+       echo "unique-file:file" >expect &&
+       test_cmp expect actual
+'
+
+test_expect_success 'describe directly tagged blob' '
+       git tag test-blob unique-file:file &&
+       git describe test-blob >actual &&
+       echo "unique-file:file" >expect &&
+       # suboptimal: we rather want to see "test-blob"
+       test_cmp expect actual
+'
+
+test_expect_success 'describe tag object' '
+       git tag test-blob-1 -a -m msg unique-file:file &&
+       test_must_fail git describe test-blob-1 2>actual &&
+       test_i18ngrep "fatal: test-blob-1 is neither a commit nor blob" actual
+'
+
+test_expect_failure ULIMIT_STACK_SIZE 'name-rev works in a deep repo' '
+       i=1 &&
+       while test $i -lt 8000
+       do
+               echo "commit refs/heads/master
+committer A U Thor <author@example.com> $((1000000000 + $i * 100)) +0200
+data <<EOF
+commit #$i
+EOF"
+               test $i = 1 && echo "from refs/heads/master^0"
+               i=$(($i + 1))
+       done | git fast-import &&
+       git checkout master &&
+       git tag far-far-away HEAD^ &&
+       echo "HEAD~4000 tags/far-far-away~3999" >expect &&
+       git name-rev HEAD~4000 >actual &&
+       test_cmp expect actual &&
+       run_with_limited_stack git name-rev HEAD~4000 >actual &&
+       test_cmp expect actual
+'
+
+test_expect_success ULIMIT_STACK_SIZE 'describe works in a deep repo' '
+       git tag -f far-far-away HEAD~7999 &&
+       echo "far-far-away" >expect &&
+       git describe --tags --abbrev=0 HEAD~4000 >actual &&
+       test_cmp expect actual &&
+       run_with_limited_stack git describe --tags --abbrev=0 HEAD~4000 >actual &&
+       test_cmp expect actual
+'
+
 test_done