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

[PATCH v4 13/21] remote-hg: force remote push

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Apr 11, 2013, 12:23 UTC
Message-ID
<1365682997-11329-14-git-send-email-felipe.contreras@gmail.com>
In-Reply-To
<1365682997-11329-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 ec599c6..ff89725 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.1
Previous: Felipe ContrerasNext: Felipe Contreras
Message 14 of 25 in “remote-hg: general updates”
  1. 00/21 remote-hg: general updatesFelipe Contreras, Apr 11, 2013
  2. 01/21 remote-hg: trivial cleanupsFelipe Contreras, Apr 11, 2013
  3. 02/21 remote-hg: add missing config variable in docFelipe Contreras, Apr 11, 2013
  4. 03/21 remote-hg: properly report errors on bookmark pushesFelipe Contreras, Apr 11, 2013
  5. 04/21 remote-hg: fix for files with spacesFelipe Contreras, Apr 11, 2013
  6. 05/21 remote-hg: make sure fake bookmarks are updatedFelipe Contreras, Apr 11, 2013
  7. 06/21 remote-hg: trivial test cleanupsFelipe Contreras, Apr 11, 2013
  8. 07/21 remote-hg: redirect buggy mercurial outputFelipe Contreras, Apr 11, 2013
  9. 08/21 remote-hg: split bookmark handlingFelipe Contreras, Apr 11, 2013
  10. 09/21 remote-hg: refactor exportFelipe Contreras, Apr 11, 2013
  11. 10/21 remote-hg: update remote bookmarksFelipe Contreras, Apr 11, 2013
  12. 11/21 remote-hg: update tags globallyFelipe Contreras, Apr 11, 2013
  13. 12/21 remote-hg: push to the appropriate branchFelipe Contreras, Apr 11, 2013
  14. 13/21 remote-hg: force remote pushFelipe Contreras, Apr 11, 2013
  15. 14/21 remote-hg: show more proper errorsFelipe Contreras, Apr 11, 2013
  16. Antoine PelisseMay 27, 2013
  17. Felipe ContrerasMay 27, 2013
  18. 15/21 remote-hg: add basic author testsFelipe Contreras, Apr 11, 2013
  19. 16/21 remote-hg: add simple mail testFelipe Contreras, Apr 11, 2013
  20. 17/21 remote-hg: add 'insecure' optionFelipe Contreras, Apr 11, 2013
  21. 18/21 remote-hg: fix bad state issueFelipe Contreras, Apr 11, 2013
  22. 19/21 remote-hg: document location of stored hg repositoryFelipe Contreras, Apr 11, 2013
  23. 20/21 remote-hg: fix bad file pathsFelipe Contreras, Apr 11, 2013
  24. 21/21 remote-hg: activate graphlog extension for hg_log()Felipe Contreras, Apr 11, 2013
  25. Junio C HamanoApr 11, 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.