diff options
-rwxr-xr-x | contrib/remote-helpers/git-remote-hg | 30 | ||||
-rwxr-xr-x | contrib/remote-helpers/test-hg-bidi.sh | 9 | ||||
-rwxr-xr-x | contrib/remote-helpers/test-hg-hg-git.sh | 4 | ||||
-rwxr-xr-x | contrib/remote-helpers/test-hg.sh | 35 |
4 files changed, 26 insertions, 52 deletions
diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg index 48edf3b562..7c859b82e8 100755 --- a/contrib/remote-helpers/git-remote-hg +++ b/contrib/remote-helpers/git-remote-hg @@ -560,22 +560,16 @@ def get_branch_tip(repo, branch): return heads[0] def list_head(repo, cur): - global g_head, bmarks + global g_head, bmarks, fake_bmark - head = bookmarks.readcurrent(repo) - if head: - node = repo[head] - else: - # fake bookmark from current branch - head = cur - node = repo['.'] - if not node: - node = repo['tip'] - if not node: - return - if head == 'default': - head = 'master' - bmarks[head] = node + if 'default' not in repo: + # empty repo + return + + node = repo['default'] + head = 'master' if not 'master' in bmarks else 'default' + fake_bmark = head + bmarks[head] = node head = gitref(head) print "@refs/heads/%s HEAD" % head @@ -910,8 +904,8 @@ def do_export(parser): if old == new: continue - if bmark == 'master' and 'master' not in parser.repo._bookmarks: - # fake bookmark + if bmark == fake_bmark or \ + bmark == 'master' and 'master' not in parser.repo._bookmarks: print "ok %s" % ref continue elif bookmarks.pushbookmark(parser.repo, bmark, old, new): @@ -946,6 +940,7 @@ def main(args): global track_branches, force_push, is_tmp global parsed_tags global filenodes + global fake_bmark alias = args[1] url = args[2] @@ -979,6 +974,7 @@ def main(args): marks = None parsed_tags = {} filenodes = {} + fake_bmark = None repo = get_repo(url, alias) prefix = 'refs/hg/%s' % alias diff --git a/contrib/remote-helpers/test-hg-bidi.sh b/contrib/remote-helpers/test-hg-bidi.sh index f0aa3c06c1..f83d67d74f 100755 --- a/contrib/remote-helpers/test-hg-bidi.sh +++ b/contrib/remote-helpers/test-hg-bidi.sh @@ -29,7 +29,6 @@ git_clone () { hg_clone () { ( hg init $2 && - hg -R $2 bookmark -i master && cd $1 && git push -q "hg::../$2" 'refs/tags/*:refs/tags/*' 'refs/heads/*:refs/heads/*' ) && @@ -49,8 +48,7 @@ hg_push () { } hg_log () { - hg -R $1 log --graph --debug >log && - grep -v 'tag: *default/' log + hg -R $1 log --graph --debug } setup () { @@ -66,6 +64,7 @@ setup () { echo "graphlog =" ) >> "$HOME"/.hgrc && git config --global remote-hg.hg-git-compat true + git config --global remote-hg.track-branches true HGEDITOR=/usr/bin/true GIT_AUTHOR_DATE="2007-01-01 00:00:00 +0230" @@ -189,7 +188,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" && @@ -225,7 +224,7 @@ test_expect_success 'hg tags' ' hg_clone gitrepo hgrepo && cd hgrepo && - hg co master && + hg co default && hg tag alpha ) && diff --git a/contrib/remote-helpers/test-hg-hg-git.sh b/contrib/remote-helpers/test-hg-hg-git.sh index 37e59d8fe8..2219284382 100755 --- a/contrib/remote-helpers/test-hg-hg-git.sh +++ b/contrib/remote-helpers/test-hg-hg-git.sh @@ -27,7 +27,8 @@ fi # clone to a git repo with git git_clone_git () { - git clone -q "hg::$1" $2 + git clone -q "hg::$1" $2 && + (cd $2 && git checkout master && git branch -D default) } # clone to an hg repo with git @@ -63,6 +64,7 @@ hg_push_git () { cd $2 git checkout -q -b tmp && git fetch -q "hg::../$1" 'refs/tags/*:refs/tags/*' 'refs/heads/*:refs/heads/*' && + git branch -D default && git checkout -q @{-1} && git branch -q -D tmp 2> /dev/null || true ) diff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh index af27a0f65f..4d5aba20a0 100755 --- a/contrib/remote-helpers/test-hg.sh +++ b/contrib/remote-helpers/test-hg.sh @@ -21,15 +21,8 @@ if ! python -c 'import mercurial'; then fi check () { - ( - cd $1 && - git log --format='%s' -1 && - git symbolic-ref HEAD - ) > actual && - ( - echo $2 && - echo "refs/heads/$3" - ) > expected && + echo $3 > expected && + git --git-dir=$1/.git log --format='%s' -1 $2 > actual test_cmp expected actual } @@ -56,7 +49,7 @@ test_expect_success 'cloning' ' ) && git clone "hg::hgrepo" gitrepo && - check gitrepo zero master + check gitrepo HEAD zero ' test_expect_success 'cloning with branches' ' @@ -70,12 +63,7 @@ test_expect_success 'cloning with branches' ' ) && git clone "hg::hgrepo" gitrepo && - check gitrepo next next && - - (cd hgrepo && hg checkout default) && - - git clone "hg::hgrepo" gitrepo2 && - check gitrepo2 zero master + check gitrepo origin/branches/next next ' test_expect_success 'cloning with bookmarks' ' @@ -83,25 +71,14 @@ test_expect_success 'cloning with bookmarks' ' ( cd hgrepo && + hg checkout default && hg bookmark feature-a && echo feature-a > content && hg commit -m feature-a ) && git clone "hg::hgrepo" gitrepo && - check gitrepo feature-a feature-a -' - -test_expect_success 'cloning with detached head' ' - test_when_finished "rm -rf gitrepo*" && - - ( - cd hgrepo && - hg update -r 0 - ) && - - git clone "hg::hgrepo" gitrepo && - check gitrepo zero master + check gitrepo origin/feature-a feature-a ' test_expect_success 'update bookmark' ' |