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>maint
							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
	
	 Tay Ray Chuan
						Tay Ray Chuan