diff options
-rwxr-xr-x | contrib/remote-helpers/git-remote-hg | 19 | ||||
-rwxr-xr-x | contrib/remote-helpers/test-hg.sh | 2 |
2 files changed, 10 insertions, 11 deletions
diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg index 5ad5c1e1a3..a1b22f7c6c 100755 --- a/contrib/remote-helpers/git-remote-hg +++ b/contrib/remote-helpers/git-remote-hg @@ -580,11 +580,11 @@ def get_branch_tip(repo, branch): def list_head(repo, cur): global g_head, bmarks, fake_bmark - if 'default' not in repo: + if 'default' not in branches: # empty repo return - node = repo['default'] + node = repo[branch_tip('default')] head = 'master' if not 'master' in bmarks else 'default' fake_bmark = head bmarks[head] = node @@ -601,18 +601,17 @@ def do_list(parser): bmarks[bmark] = repo[node] cur = repo.dirstate.branch() + orig = peer if peer else repo + + for branch, heads in orig.branchmap().iteritems(): + # only open heads + heads = [h for h in heads if 'close' not in repo.changelog.read(h)[5]] + if heads: + branches[branch] = heads list_head(repo, cur) if track_branches: - orig = peer if peer else repo - - for branch, heads in orig.branchmap().iteritems(): - # only open heads - heads = [h for h in heads if 'close' not in repo.changelog.read(h)[5]] - if heads: - branches[branch] = heads - for branch in branches: print "? refs/heads/branches/%s" % gitref(branch) diff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh index 20f5b32123..b887233658 100755 --- a/contrib/remote-helpers/test-hg.sh +++ b/contrib/remote-helpers/test-hg.sh @@ -486,7 +486,7 @@ test_expect_success 'remote big push' ' check_bookmark hgrepo new_bmark '' ' -test_expect_failure 'remote double failed push' ' +test_expect_success 'remote double failed push' ' test_when_finished "rm -rf hgrepo gitrepo*" && ( |