Merge branch 'maint'
[gitweb.git] / t / t5400-send-pack.sh
index 1a4d2f2f13d4875d92e94cfa686ac42d3556ee24..8afb89971752fe4a91b9b7c62b4b0a6b69a8272b 100755 (executable)
@@ -8,6 +8,9 @@ test_description='See why rewinding head breaks send-pack
 '
 . ./test-lib.sh
 
+touch cpio-test
+test_expect_success 'working cpio' 'echo cpio-test | cpio -o > /dev/null'
+
 cnt='1'
 test_expect_success setup '
        tree=$(git-write-tree) &&
@@ -40,7 +43,15 @@ test_expect_success setup '
 test_expect_success \
         'pushing rewound head should not barf but require --force' ' 
        # should not fail but refuse to update.
-       git-send-pack ./victim/.git/ master &&
+       if git-send-pack ./victim/.git/ master
+       then
+               # now it should fail with Pasky patch
+               echo >&2 Gaah, it should have failed.
+               false
+       else
+               echo >&2 Thanks, it correctly failed.
+               true
+       fi &&
        if cmp victim/.git/refs/heads/master .git/refs/heads/master
        then
                # should have been left as it was!
@@ -53,4 +64,18 @@ test_expect_success \
        cmp victim/.git/refs/heads/master .git/refs/heads/master
 '
 
+unset GIT_CONFIG GIT_CONFIG_LOCAL
+HOME=`pwd`/no-such-directory
+export HOME ;# this way we force the victim/.git/config to be used.
+
+test_expect_success \
+        'pushing with --force should be denied with denyNonFastforwards' '
+       cd victim &&
+       git-repo-config receive.denyNonFastforwards true &&
+       cd .. &&
+       git-update-ref refs/heads/master master^ &&
+       git-send-pack --force ./victim/.git/ master &&
+       ! diff -u .git/refs/heads/master victim/.git/refs/heads/master
+'
+
 test_done