diff options
author | Tay Ray Chuan <rctay89@gmail.com> | 2010-01-08 10:12:41 +0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-01-09 23:34:10 -0800 |
commit | 7b69079be964ca0a09a1a7895455ba3df379984e (patch) | |
tree | 87fdf7776ae7d1a5b24b789eb611cc8d937e9429 /t/t5541-http-push.sh | |
parent | 1945237486851bc3a0c6d65eaeb21cb22cac2ea1 (diff) | |
download | git-7b69079be964ca0a09a1a7895455ba3df379984e.tar.gz |
t5541-http-push.sh: add test for unmatched, non-fast-forwarded refs
Some refs can only be matched to a remote ref with an explicit refspec.
When such a ref is a non-fast-forward of its remote ref, test that
pushing them (with the explicit refspec specified) fails with a non-
fast-foward-type error (viz. printing of ref status and help message).
Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t5541-http-push.sh')
-rwxr-xr-x | t/t5541-http-push.sh | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/t/t5541-http-push.sh b/t/t5541-http-push.sh index f49c7c4178..cc740fe124 100755 --- a/t/t5541-http-push.sh +++ b/t/t5541-http-push.sh @@ -111,5 +111,26 @@ Merge the remote changes before pushing again. See the '"'non-fast-forward'"' section of '"'git push --help'"' for details." output ' +test_expect_failure '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 +Merge the remote changes before pushing again. See the '"'non-fast-forward'"' +section of '"'git push --help'"' for details." output +' + stop_httpd test_done |