summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Contreras <felipe.contreras@gmail.com>2013-04-11 07:23:09 -0500
committerJunio C Hamano <gitster@pobox.com>2013-04-11 10:46:47 -0700
commitb0c3db860cac2215f07deeb9e91cbd2597fe41d0 (patch)
tree1945776e05092575de6e36ab9333e9d8451c3c6e
parent11dc88f49c1dc177132fb724d46c80ae8e6a2e99 (diff)
downloadgit-b0c3db860cac2215f07deeb9e91cbd2597fe41d0.tar.gz
remote-hg: force remote push
Ideally we shouldn't do this, as it's not recommended in mercurial documentation, but there's no other way to push multiple bookmarks (on the same branch), which would be the behavior most similar to git. At the same time, add a configuration option for the people that don't want to risk creating new remote heads. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xcontrib/remote-helpers/git-remote-hg11
1 files changed, 9 insertions, 2 deletions
diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg
index ec599c60ff..ff8972579e 100755
--- a/contrib/remote-helpers/git-remote-hg
+++ b/contrib/remote-helpers/git-remote-hg
@@ -27,6 +27,9 @@ import urllib
# named branches:
# git config --global remote-hg.track-branches false
#
+# If you don't want to force pushes (and thus risk creating new remote heads):
+# git config --global remote-hg.force-push false
+#
# git:
# Sensible defaults for git.
# hg bookmarks are exported as git branches, hg branches are prefixed
@@ -730,7 +733,7 @@ def do_export(parser):
continue
if peer:
- parser.repo.push(peer, force=False)
+ parser.repo.push(peer, force=force_push)
# handle bookmarks
for bmark, node in p_bmarks:
@@ -773,7 +776,7 @@ def main(args):
global prefix, dirname, branches, bmarks
global marks, blob_marks, parsed_refs
global peer, mode, bad_mail, bad_name
- global track_branches
+ global track_branches, force_push
alias = args[1]
url = args[2]
@@ -781,12 +784,16 @@ def main(args):
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