From: Felipe Contreras Date: Tue, 14 May 2013 04:36:54 GMT Subject: [PATCH 31/47] remote-hg: add test for diverged push Message-ID: <1368506230-19614-32-git-send-email-felipe.contreras@gmail.com> In-Reply-To: <1368506230-19614-1-git-send-email-felipe.contreras@gmail.com> Neither mercurial nor git allows pushing to a remote when it's a non-fast-forward push. We should be able to detect theses errors and report them properly. As opposed to throwing an exception stack-trace. Signed-off-by: Felipe Contreras --- contrib/remote-helpers/test-hg.sh | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh index 5e4f53f..06700a8 100755 --- a/contrib/remote-helpers/test-hg.sh +++ b/contrib/remote-helpers/test-hg.sh @@ -32,6 +32,12 @@ check_bookmark () { test_cmp expected actual } +check_branch () { + echo $3 > expected && + hg -R $1 log -r $2 --template '{desc}\n' > actual && + test_cmp expected actual +} + setup () { ( echo "[ui]" @@ -252,4 +258,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 -- 1.8.3.rc1.579.g184e698