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>
This commit is contained in:
parent
1945237486
commit
7b69079be9
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user