diff options
author | Felipe Contreras <felipe.contreras@gmail.com> | 2013-05-24 21:29:34 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-05-28 07:59:30 -0700 |
commit | 91347ea3e17b853155f9cab31f0c2a28143284ed (patch) | |
tree | b75fa646c531d5224fb204ab90c0d728aa648b09 /contrib/remote-helpers/git-remote-hg | |
parent | 63f54cf216944e8cadd7c762e624b0a7b1d0c3a2 (diff) | |
download | git-91347ea3e17b853155f9cab31f0c2a28143284ed.tar.gz |
remote-hg: always point HEAD to master
Mercurial always checks out the 'default' branch, so there's no point in
complicating our lives trying to do something fancier, which causes
different behavior depending on whether the repository is local or
remote.
So let's always use 'default' (which we translate to 'master'), unless
we are in hg-git mode, which expects us to use the 'master' bookmark
instead.
Also, update the tests that used to check for different checkout
behaviors to simply check that the refs are there, remove unnecessary
ones, and fix the ones that expect something different.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib/remote-helpers/git-remote-hg')
-rwxr-xr-x | contrib/remote-helpers/git-remote-hg | 30 |
1 files changed, 13 insertions, 17 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 |