Skip to content

Commit

Permalink
Merge branch 'fc/remote-hg' (early part)
Browse files Browse the repository at this point in the history
* 'fc/remote-hg' (early part):
  remote-hg: update bookmarks when pulling
  remote-hg: don't push fake 'master' bookmark
  remote-hg: disable forced push by default
  remote-hg: fix new branch creation
  remote-hg: add new get_config_bool() helper
  remote-hg: enable track-branches in hg-git mode
  remote-hg: get rid of unused exception checks
  remote-hg: trivial cleanups
  • Loading branch information
Junio C Hamano committed May 15, 2013
2 parents 6a3ac18 + 24317ef commit 0c2b1cf
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 24 deletions.
43 changes: 21 additions & 22 deletions contrib/remote-helpers/git-remote-hg
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,15 @@ def get_config(config):
output, _ = process.communicate()
return output

def get_config_bool(config, default=False):
value = get_config(config).rstrip('\n')
if value == "true":
return True
elif value == "false":
return False
else:
return default

class Marks:

def __init__(self, path):
Expand Down Expand Up @@ -327,11 +336,8 @@ def get_repo(url, alias):
myui.setconfig('ui', 'interactive', 'off')
myui.fout = sys.stderr

try:
if get_config('remote-hg.insecure') == 'true\n':
myui.setconfig('web', 'cacerts', '')
except subprocess.CalledProcessError:
pass
if get_config_bool('remote-hg.insecure'):
myui.setconfig('web', 'cacerts', '')

try:
mod = extensions.load(myui, 'hgext.schemes', None)
Expand All @@ -357,6 +363,9 @@ def get_repo(url, alias):
die('Repository error')
repo.pull(peer, heads=None, force=True)

rb = peer.listkeys('bookmarks')
bookmarks.updatefromremote(myui, repo, rb, url)

return repo

def rev_to_mark(rev):
Expand Down Expand Up @@ -538,7 +547,7 @@ def list_head(repo, cur):
g_head = (head, node)

def do_list(parser):
global branches, bmarks, mode, track_branches
global branches, bmarks, track_branches

repo = parser.repo
for bmark, node in bookmarks.listbookmarks(repo).iteritems():
Expand Down Expand Up @@ -850,7 +859,7 @@ def do_export(parser):
continue

if peer:
parser.repo.push(peer, force=force_push)
parser.repo.push(peer, force=force_push, newbranch=True)

# handle bookmarks
for bmark, node in p_bmarks:
Expand All @@ -867,7 +876,8 @@ def do_export(parser):

if bmark == 'master' and 'master' not in parser.repo._bookmarks:
# fake bookmark
pass
print "ok %s" % ref
continue
elif bookmarks.pushbookmark(parser.repo, bmark, old, new):
# updated locally
pass
Expand Down Expand Up @@ -906,20 +916,9 @@ def main(args):
url = args[2]
peer = None

hg_git_compat = False
track_branches = True
force_push = True

try:
if get_config('remote-hg.hg-git-compat') == 'true\n':
hg_git_compat = True
track_branches = False
if get_config('remote-hg.track-branches') == 'false\n':
track_branches = False
if get_config('remote-hg.force-push') == 'false\n':
force_push = False
except subprocess.CalledProcessError:
pass
hg_git_compat = get_config_bool('remote-hg.hg-git-compat')
track_branches = get_config_bool('remote-hg.track-branches', True)
force_push = get_config_bool('remote-hg.force-push')

if hg_git_compat:
mode = 'hg'
Expand Down
3 changes: 1 addition & 2 deletions contrib/remote-helpers/test-hg-hg-git.sh
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ setup () {
) >> "$HOME"/.hgrc &&
git config --global receive.denycurrentbranch warn
git config --global remote-hg.hg-git-compat true
git config --global remote-hg.track-branches false

HGEDITOR=/usr/bin/true

Expand Down Expand Up @@ -455,8 +456,6 @@ test_expect_success 'hg author' '
git_log gitrepo-$x > git-log-$x
done &&
test_cmp git-log-hg git-log-git &&
test_cmp hg-log-hg hg-log-git &&
test_cmp git-log-hg git-log-git
'
Expand Down

0 comments on commit 0c2b1cf

Please sign in to comment.