ewah: support platforms that require aligned reads
[gitweb.git] / t / t5516-fetch-push.sh
index 797b537d8aa0be522c6530ceb000b704fc5a95f9..99c32d75391bb02fae779ad831879903abca5d25 100755 (executable)
@@ -236,10 +236,10 @@ test_expect_success 'push with pushInsteadOf' '
 
 test_expect_success 'push with pushInsteadOf and explicit pushurl (pushInsteadOf should not rewrite)' '
        mk_empty testrepo &&
-       TRASH="$(pwd)/" &&
-       test_config "url.trash2/.pushInsteadOf" trash/ &&
+       test_config "url.trash2/.pushInsteadOf" testrepo/ &&
+       test_config "url.trash3/.pusnInsteadOf" trash/wrong &&
        test_config remote.r.url trash/wrong &&
-       test_config remote.r.pushurl "$TRASH/testrepo" &&
+       test_config remote.r.pushurl "testrepo/" &&
        git push r refs/heads/master:refs/remotes/origin/master &&
        (
                cd testrepo &&
@@ -252,7 +252,7 @@ test_expect_success 'push with pushInsteadOf and explicit pushurl (pushInsteadOf
 test_expect_success 'push with matching heads' '
 
        mk_test testrepo heads/master &&
-       git push testrepo &&
+       git push testrepo &&
        check_push_result testrepo $the_commit heads/master
 
 '
@@ -281,7 +281,7 @@ test_expect_success 'push --force with matching heads' '
        mk_test testrepo heads/master &&
        git push testrepo : &&
        git commit --amend -massaged &&
-       git push --force testrepo &&
+       git push --force testrepo &&
        ! check_push_result testrepo $the_commit heads/master &&
        git reset --hard $the_commit
 
@@ -504,6 +504,7 @@ test_expect_success 'push with remote.pushdefault' '
        test_config remote.down.url down_repo &&
        test_config branch.master.remote up &&
        test_config remote.pushdefault down &&
+       test_config push.default matching &&
        git push &&
        check_push_result up_repo $the_first_commit heads/master &&
        check_push_result down_repo $the_commit heads/master
@@ -515,10 +516,26 @@ test_expect_success 'push with config remote.*.pushurl' '
        git checkout master &&
        test_config remote.there.url test2repo &&
        test_config remote.there.pushurl testrepo &&
-       git push there &&
+       git push there &&
        check_push_result testrepo $the_commit heads/master
 '
 
+test_expect_success 'push with config branch.*.pushremote' '
+       mk_test up_repo heads/master &&
+       mk_test side_repo heads/master &&
+       mk_test down_repo heads/master &&
+       test_config remote.up.url up_repo &&
+       test_config remote.pushdefault side_repo &&
+       test_config remote.down.url down_repo &&
+       test_config branch.master.remote up &&
+       test_config branch.master.pushremote down &&
+       test_config push.default matching &&
+       git push &&
+       check_push_result up_repo $the_first_commit heads/master &&
+       check_push_result side_repo $the_first_commit heads/master &&
+       check_push_result down_repo $the_commit heads/master
+'
+
 test_expect_success 'push with dry-run' '
 
        mk_test testrepo heads/master &&
@@ -526,7 +543,7 @@ test_expect_success 'push with dry-run' '
                cd testrepo &&
                old_commit=$(git show-ref -s --verify refs/heads/master)
        ) &&
-       git push --dry-run testrepo &&
+       git push --dry-run testrepo &&
        check_push_result testrepo $old_commit heads/master
 '
 
@@ -1007,7 +1024,7 @@ test_expect_success 'push --porcelain --dry-run rejected' '
 
 test_expect_success 'push --prune' '
        mk_test testrepo heads/master heads/second heads/foo heads/bar &&
-       git push --prune testrepo &&
+       git push --prune testrepo &&
        check_push_result testrepo $the_commit heads/master &&
        check_push_result testrepo $the_first_commit heads/second &&
        ! check_push_result testrepo $the_first_commit heads/foo heads/bar
@@ -1155,4 +1172,21 @@ test_expect_success 'push --follow-tag only pushes relevant tags' '
        test_cmp expect actual
 '
 
+test_expect_success 'push --no-thin must produce non-thin pack' '
+       cat >>path1 <<\EOF &&
+keep base version of path1 big enough, compared to the new changes
+later, in order to pass size heuristics in
+builtin/pack-objects.c:try_delta()
+EOF
+       git commit -am initial &&
+       git init no-thin &&
+       git --git-dir=no-thin/.git config receive.unpacklimit 0 &&
+       git push no-thin/.git refs/heads/master:refs/heads/foo &&
+       echo modified >> path1 &&
+       git commit -am modified &&
+       git repack -adf &&
+       rcvpck="git receive-pack --reject-thin-pack-for-testing" &&
+       git push --no-thin --receive-pack="$rcvpck" no-thin/.git refs/heads/master:refs/heads/foo
+'
+
 test_done