remote-hg: add test for diverged push
authorFelipe Contreras <felipe.contreras@gmail.com>
Sat, 25 May 2013 02:29:41 +0000 (21:29 -0500)
committerJunio C Hamano <gitster@pobox.com>
Tue, 28 May 2013 15:00:13 +0000 (08:00 -0700)
Neither mercurial nor git allows pushing to a remote when it's a
non-fast-forward push. We should be able to detect these errors and
report them properly, as opposed to throwing an exception
stack-trace.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/remote-helpers/test-hg.sh
index 8d70f4aefced6ce6dcc3eb7827923dbeba100427..f4dac526ee450c574d4487ae7b700b1d7fbd4dee 100755 (executable)
@@ -318,4 +318,27 @@ test_expect_success 'remote new bookmark' '
        check_bookmark hgrepo feature-b feature-b
 '
 
+test_expect_failure 'remote push diverged' '
+       test_when_finished "rm -rf gitrepo*" &&
+
+       git clone "hg::hgrepo" gitrepo &&
+
+       (
+       cd hgrepo &&
+       hg checkout default &&
+       echo bump > content &&
+       hg commit -m bump
+       ) &&
+
+       (
+       cd gitrepo &&
+       echo diverge > content &&
+       git commit -a -m diverged &&
+       test_expect_code 1 git push 2> error &&
+       grep "^ ! \[rejected\] *master -> master (non-fast-forward)$" error
+       ) &&
+
+       check_branch hgrepo default bump
+'
+
 test_done