git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v3 13/20] remote-hg: force remote push

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Apr 8, 2013, 17:13 UTC
Message-ID
<1365441214-21096-14-git-send-email-felipe.contreras@gmail.com>
In-Reply-To
<1365441214-21096-1-git-send-email-felipe.contreras@gmail.com>

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>
---
 contrib/remote-helpers/git-remote-hg | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg
index 8f6809a..9fb4d8b 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
 
-- 
1.8.2
Previous: Felipe ContrerasNext: Felipe Contreras
Message 17 of 24 in “remote-hg: general updates”
  1. 00/20 remote-hg: general updatesFelipe Contreras, Apr 8, 2013
  2. 01/20 remote-hg: trivial cleanupsFelipe Contreras, Apr 8, 2013
  3. 02/20 remote-hg: add missing config variable in docFelipe Contreras, Apr 8, 2013
  4. 03/20 remote-hg: properly report errors on bookmark pushesFelipe Contreras, Apr 8, 2013
  5. 04/20 remote-hg: fix for files with spacesFelipe Contreras, Apr 8, 2013
  6. 05/20 remote-hg: make sure fake bookmarks are updatedFelipe Contreras, Apr 8, 2013
  7. 06/20 remote-hg: trivial test cleanupsFelipe Contreras, Apr 8, 2013
  8. 07/20 remote-hg: redirect buggy mercurial outputFelipe Contreras, Apr 8, 2013
  9. 08/20 remote-hg: split bookmark handlingFelipe Contreras, Apr 8, 2013
  10. Felipe ContrerasApr 10, 2013
  11. Junio C HamanoApr 10, 2013
  12. 09/20 remote-hg: refactor exportFelipe Contreras, Apr 8, 2013
  13. 10/20 remote-hg: update remote bookmarksFelipe Contreras, Apr 8, 2013
  14. 11/20 remote-hg: update tags globallyFelipe Contreras, Apr 8, 2013
  15. 12/20 remote-hg: push to the appropriate branchFelipe Contreras, Apr 8, 2013
  16. Felipe ContrerasApr 10, 2013
  17. 13/20 remote-hg: force remote pushFelipe Contreras, Apr 8, 2013
  18. 14/20 remote-hg: show more proper errorsFelipe Contreras, Apr 8, 2013
  19. 15/20 remote-hg: add basic author testsFelipe Contreras, Apr 8, 2013
  20. 16/20 remote-hg: add simple mail testFelipe Contreras, Apr 8, 2013
  21. 17/20 remote-hg: add 'insecure' optionFelipe Contreras, Apr 8, 2013
  22. 18/20 remote-hg: fix bad state issueFelipe Contreras, Apr 8, 2013
  23. 19/20 remote-hg: document location of stored hg repositoryFelipe Contreras, Apr 8, 2013
  24. 20/20 remote-hg: fix bad file pathsFelipe Contreras, Apr 8, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.