remote-hg: add tests for 'master' bookmark
authorFelipe Contreras <felipe.contreras@gmail.com>
Sat, 25 May 2013 02:29:35 +0000 (21:29 -0500)
committerJunio C Hamano <gitster@pobox.com>
Tue, 28 May 2013 14:59:31 +0000 (07:59 -0700)
We want to make sure everything works correctly, even if there's a
'master' bookmark in Mercurial.

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 4d5aba20a090209a6678e1f69f9bf8ad26a03143..d244e236f6eca721f69e7f6345f6cf2f1a3f30df 100755 (executable)
@@ -26,13 +26,23 @@ check () {
        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]"
        echo "username = H G Wells <wells@example.com>"
        echo "[extensions]"
        echo "mq ="
-       ) >> "$HOME"/.hgrc
+       ) >> "$HOME"/.hgrc &&
+
+       GIT_AUTHOR_DATE="2007-01-01 00:00:00 +0230" &&
+       GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE" &&
+       export GIT_COMMITTER_DATE GIT_AUTHOR_DATE
 }
 
 setup
@@ -178,4 +188,60 @@ test_expect_success 'strip' '
        test_cmp actual expected
 '
 
+test_expect_success 'remote push with master bookmark' '
+       test_when_finished "rm -rf hgrepo gitrepo*" &&
+
+       (
+       hg init hgrepo &&
+       cd hgrepo &&
+       echo zero > content &&
+       hg add content &&
+       hg commit -m zero &&
+       hg bookmark master &&
+       echo one > content &&
+       hg commit -m one
+       ) &&
+
+       (
+       git clone "hg::hgrepo" gitrepo &&
+       cd gitrepo &&
+       echo two > content &&
+       git commit -a -m two &&
+       git push
+       ) &&
+
+       check_branch hgrepo default two
+'
+
+cat > expected <<EOF
+changeset:   0:6e2126489d3d
+tag:         tip
+user:        A U Thor <author@example.com>
+date:        Mon Jan 01 00:00:00 2007 +0230
+summary:     one
+
+EOF
+
+test_expect_success 'remote push from master branch' '
+       test_when_finished "rm -rf hgrepo gitrepo*" &&
+
+       hg init hgrepo &&
+
+       (
+       git init gitrepo &&
+       cd gitrepo &&
+       git remote add origin "hg::../hgrepo" &&
+       echo one > content &&
+       git add content &&
+       git commit -a -m one &&
+       git push origin master
+       ) &&
+
+       hg -R hgrepo log > actual &&
+       cat actual &&
+       test_cmp expected actual &&
+
+       check_branch hgrepo default one
+'
+
 test_done