diff options
Diffstat (limited to 'contrib/remote-helpers/test-hg-bidi.sh')
-rwxr-xr-x | contrib/remote-helpers/test-hg-bidi.sh | 101 |
1 files changed, 50 insertions, 51 deletions
diff --git a/contrib/remote-helpers/test-hg-bidi.sh b/contrib/remote-helpers/test-hg-bidi.sh index 1d61982436..e24c51daad 100755 --- a/contrib/remote-helpers/test-hg-bidi.sh +++ b/contrib/remote-helpers/test-hg-bidi.sh @@ -10,20 +10,21 @@ test_description='Test bidirectionality of remote-hg' . ./test-lib.sh -if ! test_have_prereq PYTHON; then +if ! test_have_prereq PYTHON +then skip_all='skipping remote-hg tests; python not available' test_done fi -if ! "$PYTHON_PATH" -c 'import mercurial'; then +if ! python -c 'import mercurial' +then skip_all='skipping remote-hg tests; mercurial not available' test_done fi # clone to a git repo git_clone () { - hg -R $1 bookmark -f -r tip master && - git clone -q "hg::$PWD/$1" $2 + git clone -q "hg::$1" $2 } # clone to an hg repo @@ -31,7 +32,7 @@ hg_clone () { ( hg init $2 && cd $1 && - git push -q "hg::$PWD/../$2" 'refs/tags/*:refs/tags/*' 'refs/heads/*:refs/heads/*' + git push -q "hg::../$2" 'refs/tags/*:refs/tags/*' 'refs/heads/*:refs/heads/*' ) && (cd $2 && hg -q update) @@ -41,16 +42,15 @@ hg_clone () { hg_push () { ( cd $2 - old=$(git symbolic-ref --short HEAD) git checkout -q -b tmp && - git fetch -q "hg::$PWD/../$1" 'refs/tags/*:refs/tags/*' 'refs/heads/*:refs/heads/*' && - git checkout -q $old && - git branch -q -D tmp 2> /dev/null || true + git fetch -q "hg::../$1" 'refs/tags/*:refs/tags/*' 'refs/heads/*:refs/heads/*' && + git checkout -q @{-1} && + git branch -q -D tmp 2>/dev/null || true ) } hg_log () { - hg -R $1 log --graph --debug | grep -v 'tag: *default/' + hg -R $1 log --graph --debug } setup () { @@ -62,40 +62,43 @@ setup () { echo "commit = -d \"0 0\"" echo "debugrawcommit = -d \"0 0\"" echo "tag = -d \"0 0\"" - ) >> "$HOME"/.hgrc && + echo "[extensions]" + echo "graphlog =" + ) >>"$HOME"/.hgrc && git config --global remote-hg.hg-git-compat true + git config --global remote-hg.track-branches true - export HGEDITOR=/usr/bin/true - - export GIT_AUTHOR_DATE="2007-01-01 00:00:00 +0230" - export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE" + HGEDITOR=/usr/bin/true + GIT_AUTHOR_DATE="2007-01-01 00:00:00 +0230" + GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE" + export HGEDITOR GIT_AUTHOR_DATE GIT_COMMITTER_DATE } setup test_expect_success 'encoding' ' - mkdir -p tmp && cd tmp && - test_when_finished "cd .. && rm -rf tmp" && + test_when_finished "rm -rf gitrepo* hgrepo*" && ( git init -q gitrepo && cd gitrepo && - echo alpha > alpha && + echo alpha >alpha && git add alpha && git commit -m "add älphà" && - export GIT_AUTHOR_NAME="tést èncödîng" && - echo beta > beta && + GIT_AUTHOR_NAME="tést èncödîng" && + export GIT_AUTHOR_NAME && + echo beta >beta && git add beta && git commit -m "add beta" && - echo gamma > gamma && + echo gamma >gamma && git add gamma && git commit -m "add gämmâ" && : TODO git config i18n.commitencoding latin-1 && - echo delta > delta && + echo delta >delta && git add delta && git commit -m "add déltà" ) && @@ -104,27 +107,26 @@ test_expect_success 'encoding' ' git_clone hgrepo gitrepo2 && hg_clone gitrepo2 hgrepo2 && - HGENCODING=utf-8 hg_log hgrepo > expected && - HGENCODING=utf-8 hg_log hgrepo2 > actual && + HGENCODING=utf-8 hg_log hgrepo >expected && + HGENCODING=utf-8 hg_log hgrepo2 >actual && test_cmp expected actual ' test_expect_success 'file removal' ' - mkdir -p tmp && cd tmp && - test_when_finished "cd .. && rm -rf tmp" && + test_when_finished "rm -rf gitrepo* hgrepo*" && ( git init -q gitrepo && cd gitrepo && - echo alpha > alpha && + echo alpha >alpha && git add alpha && git commit -m "add alpha" && - echo beta > beta && + echo beta >beta && git add beta && git commit -m "add beta" mkdir foo && - echo blah > foo/bar && + echo blah >foo/bar && git add foo && git commit -m "add foo" && git rm alpha && @@ -137,26 +139,25 @@ test_expect_success 'file removal' ' git_clone hgrepo gitrepo2 && hg_clone gitrepo2 hgrepo2 && - hg_log hgrepo > expected && - hg_log hgrepo2 > actual && + hg_log hgrepo >expected && + hg_log hgrepo2 >actual && test_cmp expected actual ' test_expect_success 'git tags' ' - mkdir -p tmp && cd tmp && - test_when_finished "cd .. && rm -rf tmp" && + test_when_finished "rm -rf gitrepo* hgrepo*" && ( git init -q gitrepo && cd gitrepo && git config receive.denyCurrentBranch ignore && - echo alpha > alpha && + echo alpha >alpha && git add alpha && git commit -m "add alpha" && git tag alpha && - echo beta > beta && + echo beta >beta && git add beta && git commit -m "add beta" && git tag -a -m "added tag beta" beta @@ -166,21 +167,20 @@ test_expect_success 'git tags' ' git_clone hgrepo gitrepo2 && hg_clone gitrepo2 hgrepo2 && - hg_log hgrepo > expected && - hg_log hgrepo2 > actual && + hg_log hgrepo >expected && + hg_log hgrepo2 >actual && test_cmp expected actual ' test_expect_success 'hg branch' ' - mkdir -p tmp && cd tmp && - test_when_finished "cd .. && rm -rf tmp" && + test_when_finished "rm -rf gitrepo* hgrepo*" && ( git init -q gitrepo && cd gitrepo && - echo alpha > alpha && + echo alpha >alpha && git add alpha && git commit -q -m "add alpha" && git checkout -q -b not-master @@ -190,7 +190,7 @@ test_expect_success 'hg branch' ' hg_clone gitrepo hgrepo && cd hgrepo && - hg -q co master && + hg -q co default && hg mv alpha beta && hg -q commit -m "rename alpha to beta" && hg branch gamma | grep -v "permanent and global" && @@ -200,24 +200,23 @@ test_expect_success 'hg branch' ' hg_push hgrepo gitrepo && hg_clone gitrepo hgrepo2 && - : TODO, avoid "master" bookmark && - (cd hgrepo2 && hg checkout gamma) && + : Back to the common revision && + (cd hgrepo && hg checkout default) && - hg_log hgrepo > expected && - hg_log hgrepo2 > actual && + hg_log hgrepo >expected && + hg_log hgrepo2 >actual && test_cmp expected actual ' test_expect_success 'hg tags' ' - mkdir -p tmp && cd tmp && - test_when_finished "cd .. && rm -rf tmp" && + test_when_finished "rm -rf gitrepo* hgrepo*" && ( git init -q gitrepo && cd gitrepo && - echo alpha > alpha && + echo alpha >alpha && git add alpha && git commit -m "add alpha" && git checkout -q -b not-master @@ -227,15 +226,15 @@ test_expect_success 'hg tags' ' hg_clone gitrepo hgrepo && cd hgrepo && - hg co master && + hg co default && hg tag alpha ) && hg_push hgrepo gitrepo && hg_clone gitrepo hgrepo2 && - hg_log hgrepo > expected && - hg_log hgrepo2 > actual && + hg_log hgrepo >expected && + hg_log hgrepo2 >actual && test_cmp expected actual ' |