[PATCH 1 of 2] push: hide description about "-f" in the hint to prevent from using it easily
Angel Ezquerra
angel.ezquerra at gmail.com
Thu Aug 29 07:47:51 CDT 2013
On Thu, Aug 29, 2013 at 2:31 PM, FUJIWARA Katsunori
<foozy at lares.dti.ne.jp> wrote:
> # HG changeset patch
> # User FUJIWARA Katsunori <foozy at lares.dti.ne.jp>
> # Date 1377777067 -32400
> # Thu Aug 29 20:51:07 2013 +0900
> # Node ID 7cee001f451b6a097ed754db1a988d1035362eaf
> # Parent d4a0055af149cdea20b3136b66cae8a24b2e2a98
> 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.
>
> 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,9 @@
> 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.
>
> 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
> @@ -323,10 +323,10 @@
> ) % short(dhs[0])
> if heads[2]: # unsynced
> hint = _("you should pull and merge or "
> - "use push -f to force")
> + "see \"hg help push\" for detail about pushing")
> else:
> hint = _("did you forget to merge? "
> - "use push -f to force")
> + "see \"hg help push\" for detail about pushing")
> 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)
> [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)
> [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)
> [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)
> # [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)
> [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)
> [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)
> [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)
> [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)
> [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)
> [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)
> [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)
> [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)
> [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)
> [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)
> [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)
> [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)
> [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)
> [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)
> [255]
> $ hg -R repo update
> 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
I would change:
"see "hg help push" for detail about pushing"
into:
"see "hg help push" for detail about pushing multiple heads"
On the hg push --help text I would also explicitly say that pushing
multiple heads is usually a mistake and should not be done unless
extrictly necessary. That is, I would change:
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.
into:
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.
Or something of the sort.
Cheers,
Angel
More information about the Mercurial-devel
mailing list