Merge branch 'master' of git://github.com/git-l10n/git-po
[gitweb.git] / t / t5516-fetch-push.sh
index 67e0ab346204b437c8e3585d948c2c61858e1928..f4da20aa9bf7df1b2ab1fda207b70e1913277603 100755 (executable)
@@ -11,6 +11,7 @@ This test checks the following functionality:
 * hooks
 * --porcelain output format
 * hiderefs
+* reflogs
 '
 
 . ./test-lib.sh
@@ -1277,4 +1278,56 @@ EOF
        git push --no-thin --receive-pack="$rcvpck" no-thin/.git refs/heads/master:refs/heads/foo
 '
 
+test_expect_success 'pushing a tag pushes the tagged object' '
+       rm -rf dst.git &&
+       blob=$(echo unreferenced | git hash-object -w --stdin) &&
+       git tag -m foo tag-of-blob $blob &&
+       git init --bare dst.git &&
+       git push dst.git tag-of-blob &&
+       # the receiving index-pack should have noticed
+       # any problems, but we double check
+       echo unreferenced >expect &&
+       git --git-dir=dst.git cat-file blob tag-of-blob >actual &&
+       test_cmp expect actual
+'
+
+test_expect_success 'push into bare respects core.logallrefupdates' '
+       rm -rf dst.git &&
+       git init --bare dst.git &&
+       git -C dst.git config core.logallrefupdates true &&
+
+       # double push to test both with and without
+       # the actual pack transfer
+       git push dst.git master:one &&
+       echo "one@{0} push" >expect &&
+       git -C dst.git log -g --format="%gd %gs" one >actual &&
+       test_cmp expect actual &&
+
+       git push dst.git master:two &&
+       echo "two@{0} push" >expect &&
+       git -C dst.git log -g --format="%gd %gs" two >actual &&
+       test_cmp expect actual
+'
+
+test_expect_success 'fetch into bare respects core.logallrefupdates' '
+       rm -rf dst.git &&
+       git init --bare dst.git &&
+       (
+               cd dst.git &&
+               git config core.logallrefupdates true &&
+
+               # as above, we double-fetch to test both
+               # with and without pack transfer
+               git fetch .. master:one &&
+               echo "one@{0} fetch .. master:one: storing head" >expect &&
+               git log -g --format="%gd %gs" one >actual &&
+               test_cmp expect actual &&
+
+               git fetch .. master:two &&
+               echo "two@{0} fetch .. master:two: storing head" >expect &&
+               git log -g --format="%gd %gs" two >actual &&
+               test_cmp expect actual
+       )
+'
+
 test_done