X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=t%2Ft5541-http-push.sh;h=795dc2bcdf98e582dd2f05d901b791ab4225ce3b;hb=47349a8cc02b3cb39bfc69cb7abec88ad3e34ebf;hp=2a58d0cc9cbfeec1085c97bf288fcd1c50c03aef;hpb=e8a285e553f8c6c04820a542b2a28816a9d62d3c;p=git.git diff --git a/t/t5541-http-push.sh b/t/t5541-http-push.sh index 2a58d0cc9..795dc2bcd 100755 --- a/t/t5541-http-push.sh +++ b/t/t5541-http-push.sh @@ -88,5 +88,27 @@ test_expect_success 'used receive-pack service' ' test_cmp exp act ' +test_http_push_nonff "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git \ + "$ROOT_PATH"/test_repo_clone master + +test_expect_success 'push fails for non-fast-forward refs unmatched by remote helper' ' + # create a dissimilarly-named remote ref so that git is unable to match the + # two refs (viz. local, remote) unless an explicit refspec is provided. + git push origin master:retsam + + echo "change changed" > path2 && + git commit -a -m path2 --amend && + + # push master too; this ensures there is at least one '"'push'"' command to + # the remote helper and triggers interaction with the helper. + !(git push -v origin +master master:retsam >output 2>&1) && + + grep "^ + [a-f0-9]*\.\.\.[a-f0-9]* *master -> master (forced update)$" output && + grep "^ ! \[rejected\] *master -> retsam (non-fast-forward)$" output && + + grep "To prevent you from losing history, non-fast-forward updates were rejected" \ + output +' + stop_httpd test_done