summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcontrib/remote-helpers/git-remote-hg19
-rwxr-xr-xcontrib/remote-helpers/test-hg.sh2
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*" &&
(