Patchwork [1,of,3,V3] push: hide description about "-f" in the hint to prevent from using it easily

login
register
mail settings
Submitter Katsunori FUJIWARA
Date Sept. 30, 2013, 3:54 p.m.
Message ID <220721e66ce9b2eb5b42.1380556470@juju>
Download mbox | patch
Permalink /patch/2673/
State Superseded
Headers show

Comments

Katsunori FUJIWARA - Sept. 30, 2013, 3:54 p.m.
# HG changeset patch
# User FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
# Date 1380554782 -32400
#      Tue Oct 01 00:26:22 2013 +0900
# Node ID 220721e66ce9b2eb5b425ed633d0d85173676b9a
# Parent  baab785e3ecfaf07e287af0e1a02bcaaf9dc38b4
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 new heads.
Augie Fackler - Sept. 30, 2013, 7:34 p.m.
On Tue, Oct 01, 2013 at 12:54:30AM +0900, FUJIWARA Katsunori wrote:
> # HG changeset patch
> # User FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
> # Date 1380554782 -32400
> #      Tue Oct 01 00:26:22 2013 +0900
> # Node ID 220721e66ce9b2eb5b425ed633d0d85173676b9a
> # Parent  baab785e3ecfaf07e287af0e1a02bcaaf9dc38b4
> push: hide description about "-f" in the hint to prevent from using it easily

I think I like this, but I'm unsure if it meets our backwards
compatibility promises. Anyone else?

>
> "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 new heads.
>
> 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 = _("pull and merge or"
> +                             " see \"hg help push\" for detail about"
> +                             " pushing new heads")
>                  else:
> -                    hint = _("did you forget to merge? "
> -                             "use push -f to force")
> +                    hint = _("merge or"
> +                             " see \"hg help push\" for detail about"
> +                             " pushing new 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)
> +  (merge or see "hg help push" for detail about pushing new 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)
> +  (merge or see "hg help push" for detail about pushing new 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)
> +  (merge or see "hg help push" for detail about pushing new 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)
> +#   (merge or see "hg help push" for detail about pushing new 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)
> +  (merge or see "hg help push" for detail about pushing new 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)
> +  (merge or see "hg help push" for detail about pushing new 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)
> +  (pull and merge or see "hg help push" for detail about pushing new 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)
> +  (pull and merge or see "hg help push" for detail about pushing new 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)
> +  (merge or see "hg help push" for detail about pushing new 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)
> +  (merge or see "hg help push" for detail about pushing new 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)
> +  (merge or see "hg help push" for detail about pushing new 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)
> +  (merge or see "hg help push" for detail about pushing new 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)
> +  (merge or see "hg help push" for detail about pushing new 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)
> +  (pull and merge or see "hg help push" for detail about pushing new 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)
> +  (merge or see "hg help push" for detail about pushing new 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)
> +  (merge or see "hg help push" for detail about pushing new 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)
> +  (merge or see "hg help push" for detail about pushing new 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
> @@ -317,7 +317,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)
> +  (merge or see "hg help push" for detail about pushing new heads)
>    [255]
>    $ hg push -f
>    pushing to $TESTTMP/t (glob)
> @@ -716,7 +716,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)
> +  (merge or see "hg help push" for detail about pushing new heads)
>    [255]
>    $ hg -R repo update
>    0 files updated, 0 files merged, 0 files removed, 0 files unresolved
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel@selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
Angel Ezquerra - Sept. 30, 2013, 9:20 p.m.
El 30/09/2013 21:34, "Augie Fackler" <raf@durin42.com> escribió:
>
> On Tue, Oct 01, 2013 at 12:54:30AM +0900, FUJIWARA Katsunori wrote:
> > # HG changeset patch
> > # User FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
> > # Date 1380554782 -32400
> > #      Tue Oct 01 00:26:22 2013 +0900
> > # Node ID 220721e66ce9b2eb5b425ed633d0d85173676b9a
> > # Parent  baab785e3ecfaf07e287af0e1a02bcaaf9dc38b4
> > push: hide description about "-f" in the hint to prevent from using it
easily
>
> I think I like this, but I'm unsure if it meets our backwards
> compatibility promises. Anyone else?
>

I also like it but shouldn't it say "for details" rather than "for detail"
where it says:

    "merge or see "hg help push" for detail about pushing new heads"

Also, I'm not so sure about the loss of "you should" at the beginning of
the hint.

Cheers,

Angel
Sean Farley - Sept. 30, 2013, 10:06 p.m.
angel.ezquerra@gmail.com writes:

> El 30/09/2013 21:34, "Augie Fackler" <raf@durin42.com> escribió:
>>
>> On Tue, Oct 01, 2013 at 12:54:30AM +0900, FUJIWARA Katsunori wrote:
>> > # HG changeset patch
>> > # User FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
>> > # Date 1380554782 -32400
>> > #      Tue Oct 01 00:26:22 2013 +0900
>> > # Node ID 220721e66ce9b2eb5b425ed633d0d85173676b9a
>> > # Parent  baab785e3ecfaf07e287af0e1a02bcaaf9dc38b4
>> > push: hide description about "-f" in the hint to prevent from using it
> easily
>>
>> I think I like this, but I'm unsure if it meets our backwards
>> compatibility promises. Anyone else?
>>
>
> I also like it but shouldn't it say "for details" rather than "for detail"
> where it says:
>
>     "merge or see "hg help push" for detail about pushing new heads"

Yes, you're correct.

> Also, I'm not so sure about the loss of "you should" at the beginning of
> the hint.

It's what Matt suggested in the last series:

http://markmail.org/message/hx7ynrs5qst2ju2x

Patch

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 = _("pull and merge or"
+                             " see \"hg help push\" for detail about"
+                             " pushing new heads")
                 else:
-                    hint = _("did you forget to merge? "
-                             "use push -f to force")
+                    hint = _("merge or"
+                             " see \"hg help push\" for detail about"
+                             " pushing new 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)
+  (merge or see "hg help push" for detail about pushing new 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)
+  (merge or see "hg help push" for detail about pushing new 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)
+  (merge or see "hg help push" for detail about pushing new 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)
+#   (merge or see "hg help push" for detail about pushing new 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)
+  (merge or see "hg help push" for detail about pushing new 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)
+  (merge or see "hg help push" for detail about pushing new 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)
+  (pull and merge or see "hg help push" for detail about pushing new 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)
+  (pull and merge or see "hg help push" for detail about pushing new 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)
+  (merge or see "hg help push" for detail about pushing new 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)
+  (merge or see "hg help push" for detail about pushing new 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)
+  (merge or see "hg help push" for detail about pushing new 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)
+  (merge or see "hg help push" for detail about pushing new 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)
+  (merge or see "hg help push" for detail about pushing new 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)
+  (pull and merge or see "hg help push" for detail about pushing new 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)
+  (merge or see "hg help push" for detail about pushing new 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)
+  (merge or see "hg help push" for detail about pushing new 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)
+  (merge or see "hg help push" for detail about pushing new 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
@@ -317,7 +317,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)
+  (merge or see "hg help push" for detail about pushing new heads)
   [255]
   $ hg push -f
   pushing to $TESTTMP/t (glob)
@@ -716,7 +716,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)
+  (merge or see "hg help push" for detail about pushing new heads)
   [255]
   $ hg -R repo update
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved