[PATCH 1 of 2 V2] push: hide description about "-f" in the hint to prevent from using it easily

FUJIWARA Katsunori foozy at lares.dti.ne.jp
Wed Sep 4 08:27:14 CDT 2013


# HG changeset patch
# User FUJIWARA Katsunori <foozy at lares.dti.ne.jp>
# Date 1378300768 -32400
#      Wed Sep 04 22:19:28 2013 +0900
# Node ID aa8788937c2e5b505b4096f48536249d29499829
# Parent  73513cb8c379af12f3dfb9ae2dcab864239481ae
push: hide description about "-f" in the hint to prevent from using it easily

"use push -f to force" in the hint at abortion of "hg push" may cause
novice users to execute "push -f" easily without understanding about
problems of multiple branch heads in the repository.

This patch hides description about "-f" in the hint, and leads into
seeing "hg help push" for detail about pushing multiple heads.

This patch also recommends to ask the management policy of the
destination repository before using "-f".

diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -4648,7 +4648,10 @@
     only create a new branch without forcing other changes.
 
     Use -f/--force to override the default behavior and push all
-    changesets on all branches.
+    changesets on all branches. Before using --force, it is
+    recommended to ask the administrator of the destination repository
+    for the management policy of it. Pushing multiple heads in
+    particular is usually a mistake.
 
     If -r/--rev is used, the specified revision and all its ancestors
     will be pushed to the remote repository.
diff --git a/mercurial/discovery.py b/mercurial/discovery.py
--- a/mercurial/discovery.py
+++ b/mercurial/discovery.py
@@ -322,11 +322,13 @@
                     error = _("push creates new remote head %s!"
                               ) % short(dhs[0])
                 if heads[2]: # unsynced
-                    hint = _("you should pull and merge or "
-                             "use push -f to force")
+                    hint = _("you should pull and merge or"
+                             " see \"hg help push\" for detail about pushing"
+                             " multiple heads")
                 else:
-                    hint = _("did you forget to merge? "
-                             "use push -f to force")
+                    hint = _("did you forget to merge?"
+                             " see \"hg help push\" for detail about pushing"
+                             " multiple heads")
             if branch is not None:
                 repo.ui.note(_("new remote heads on branch '%s'\n") % branch)
             for h in dhs:
diff --git a/tests/test-bookmarks-pushpull.t b/tests/test-bookmarks-pushpull.t
--- a/tests/test-bookmarks-pushpull.t
+++ b/tests/test-bookmarks-pushpull.t
@@ -275,7 +275,7 @@
   pushing to http://localhost:$HGPORT2/
   searching for changes
   abort: push creates new remote head c922c0139ca0!
-  (did you forget to merge? use push -f to force)
+  (did you forget to merge? see "hg help push" for detail about pushing multiple heads)
   [255]
   $ hg -R ../a book
      @                         1:0d2164f0ce0d
@@ -291,7 +291,7 @@
   pushing to http://localhost:$HGPORT2/
   searching for changes
   abort: push creates new remote head c922c0139ca0!
-  (did you forget to merge? use push -f to force)
+  (did you forget to merge? see "hg help push" for detail about pushing multiple heads)
   [255]
   $ hg -R ../a book
      @                         1:0d2164f0ce0d
diff --git a/tests/test-obsolete-checkheads.t b/tests/test-obsolete-checkheads.t
--- a/tests/test-obsolete-checkheads.t
+++ b/tests/test-obsolete-checkheads.t
@@ -98,7 +98,7 @@
   pushing to $TESTTMP/remote (glob)
   searching for changes
   abort: push creates new remote head 71e3228bffe1!
-  (did you forget to merge? use push -f to force)
+  (did you forget to merge? see "hg help push" for detail about pushing multiple heads)
   [255]
 
 old head is now public (public remote version)
@@ -127,7 +127,7 @@
 #   pushing to $TESTTMP/remote
 #   searching for changes
 #   abort: push creates new remote head 71e3228bffe1!
-#   (did you forget to merge? use push -f to force)
+#   (did you forget to merge? see "hg help push" for detail about pushing multiple heads)
 #   [255]
 
 old head is obsolete but replacement is not pushed
@@ -158,7 +158,7 @@
   pushing to $TESTTMP/remote (glob)
   searching for changes
   abort: push creates new remote head d7d41ccbd4de!
-  (did you forget to merge? use push -f to force)
+  (did you forget to merge? see "hg help push" for detail about pushing multiple heads)
   [255]
 
 
diff --git a/tests/test-phases-exchange.t b/tests/test-phases-exchange.t
--- a/tests/test-phases-exchange.t
+++ b/tests/test-phases-exchange.t
@@ -844,7 +844,7 @@
   pushing to ../mu
   searching for changes
   abort: push creates new remote head 435b5d83910c!
-  (did you forget to merge? use push -f to force)
+  (did you forget to merge? see "hg help push" for detail about pushing multiple heads)
   [255]
   $ hg push -fr 435b5d83910c ../mu # because the push will create new visible head
   pushing to ../mu
diff --git a/tests/test-push-warn.t b/tests/test-push-warn.t
--- a/tests/test-push-warn.t
+++ b/tests/test-push-warn.t
@@ -26,7 +26,7 @@
   pushing to ../a
   searching for changes
   abort: push creates new remote head 1e108cc5548c!
-  (you should pull and merge or use push -f to force)
+  (you should pull and merge or see "hg help push" for detail about pushing multiple heads)
   [255]
 
   $ hg push --debug ../a
@@ -41,7 +41,7 @@
   new remote heads on branch 'default'
   new remote head 1e108cc5548c
   abort: push creates new remote head 1e108cc5548c!
-  (you should pull and merge or use push -f to force)
+  (you should pull and merge or see "hg help push" for detail about pushing multiple heads)
   [255]
 
   $ hg pull ../a
@@ -57,7 +57,7 @@
   pushing to ../a
   searching for changes
   abort: push creates new remote head 1e108cc5548c!
-  (did you forget to merge? use push -f to force)
+  (did you forget to merge? see "hg help push" for detail about pushing multiple heads)
   [255]
 
   $ hg merge
@@ -110,7 +110,7 @@
   pushing to ../c
   searching for changes
   abort: push creates new remote head 6346d66eb9f5!
-  (did you forget to merge? use push -f to force)
+  (did you forget to merge? see "hg help push" for detail about pushing multiple heads)
   [255]
 
   $ hg push -r 2 ../c
@@ -123,7 +123,7 @@
   pushing to ../c
   searching for changes
   abort: push creates new remote head a5dda829a167!
-  (did you forget to merge? use push -f to force)
+  (did you forget to merge? see "hg help push" for detail about pushing multiple heads)
   [255]
 
   $ hg push -v -r 3 -r 4 ../c
@@ -133,7 +133,7 @@
   new remote head a5dda829a167
   new remote head ee8fbc7a0295
   abort: push creates new remote head a5dda829a167!
-  (did you forget to merge? use push -f to force)
+  (did you forget to merge? see "hg help push" for detail about pushing multiple heads)
   [255]
 
   $ hg push -v -f -r 3 -r 4 ../c
@@ -263,7 +263,7 @@
   pushing to ../f
   searching for changes
   abort: push creates new remote head 0b715ef6ff8f on branch 'a'!
-  (did you forget to merge? use push -f to force)
+  (did you forget to merge? see "hg help push" for detail about pushing multiple heads)
   [255]
 
 Push replacement head on existing branches:
@@ -386,7 +386,7 @@
   pushing to h
   searching for changes
   abort: push creates new remote head 97bd0c84d346!
-  (you should pull and merge or use push -f to force)
+  (you should pull and merge or see "hg help push" for detail about pushing multiple heads)
   [255]
 
 
@@ -458,7 +458,7 @@
   pushing to ../l
   searching for changes
   abort: push creates new remote head 451211cc22b0 on branch 'a'!
-  (did you forget to merge? use push -f to force)
+  (did you forget to merge? see "hg help push" for detail about pushing multiple heads)
   [255]
 
   $ cd ..
@@ -713,14 +713,14 @@
   pushing to inner
   searching for changes
   abort: push creates new remote head 7d0f4fb6cf04 on branch 'A'!
-  (did you forget to merge? use push -f to force)
+  (did you forget to merge? see "hg help push" for detail about pushing multiple heads)
   [255]
 
   $ hg push inner -r4 -r5
   pushing to inner
   searching for changes
   abort: push creates new remote head 7d0f4fb6cf04 on branch 'A'!
-  (did you forget to merge? use push -f to force)
+  (did you forget to merge? see "hg help push" for detail about pushing multiple heads)
   [255]
 
   $ hg in inner
diff --git a/tests/test-subrepo.t b/tests/test-subrepo.t
--- a/tests/test-subrepo.t
+++ b/tests/test-subrepo.t
@@ -314,7 +314,7 @@
   pushing subrepo s to $TESTTMP/t/s
   searching for changes
   abort: push creates new remote head 12a213df6fa9! (in subrepo s)
-  (did you forget to merge? use push -f to force)
+  (did you forget to merge? see "hg help push" for detail about pushing multiple heads)
   [255]
   $ hg push -f
   pushing to $TESTTMP/t (glob)
@@ -711,7 +711,7 @@
   $ hg -R repo2 ci -m3
   $ hg -q -R repo2 push
   abort: push creates new remote head cc505f09a8b2! (in subrepo s)
-  (did you forget to merge? use push -f to force)
+  (did you forget to merge? see "hg help push" for detail about pushing multiple heads)
   [255]
   $ hg -R repo update
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved


More information about the Mercurial-devel mailing list