From: Tay Ray Chuan Date: Thu, 24 Dec 2009 07:41:58 GMT Subject: [PATCH v3 2/6] t5541-http-push.sh: add test for unmatched, non-fast-forwarded refs Message-ID: <20091224154158.15ba580f.rctay89@gmail.com> In-Reply-To: <20091224154057.33611ae7.rctay89@gmail.com> Test that when non-fast-forwarded refs cannot be matched without an explicit refspect, the push fails with a non-fast-forward ref status and help message. Signed-off-by: Tay Ray Chuan --- t/t5541-http-push.sh | 20 ++++++++++++++++++++ 1 files changed, 20 insertions(+), 0 deletions(-) diff --git a/t/t5541-http-push.sh b/t/t5541-http-push.sh index f49c7c4..5ebe04a 100755 --- a/t/t5541-http-push.sh +++ b/t/t5541-http-push.sh @@ -111,5 +111,25 @@ 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 ref so that git is unable to match the refs + 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-z0-9]\+\.\.\.[a-z0-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 -- 1.6.6.rc1.249.g048b3