[PATCH 2 of 3 V2] pull: activate a bookmark matching with the destination of the update
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Sat Feb 27 08:38:28 EST 2016
On 02/26/2016 12:25 PM, FUJIWARA Katsunori wrote:
> # HG changeset patch
> # User FUJIWARA Katsunori <foozy at lares.dti.ne.jp>
> # Date 1456485725 -32400
> # Fri Feb 26 20:22:05 2016 +0900
> # Node ID 8bc889107331ed73969ec1e5364bdd380f736299
> # Parent da6d9ca7f33b1f27c36b9cc6165eac6358f0aee9
> pull: activate a bookmark matching with the destination of the update
>
> Before this patch, "hg pull -u" doesn't activate a bookmark, which
> matches with the explicit destination of the update, even though bare
> "hg update" does so.
In practice, it looks like your are talking about:
'hg pull -u --rev bmname'
am I right? if so, we should probably update the commit message to have
the '--rev bmname' bits
This seems to also apply to `hg pull -u URL#bmname too.
If so, I think the change make sense (probably requires a BC) flagging.
If you agree with the aboves, we can probably update the message in flight.
> diff --git a/mercurial/commands.py b/mercurial/commands.py
> --- a/mercurial/commands.py
> +++ b/mercurial/commands.py
> @@ -5566,6 +5566,10 @@ def postincoming(ui, repo, modheads, opt
> pass # no-op update
> elif bookmarks.update(repo, [movemarkfrom], repo['.'].node()):
> ui.status(_("updating bookmark %s\n") % repo._activebookmark)
> + elif brev in repo._bookmarks:
> + if brev != repo._activebookmark:
> + ui.status(_("(activating bookmark %s)\n") % brev)
> + bookmarks.activate(repo, brev)
> return ret
> if modheads > 1:
> currentbranchheads = len(repo.branchheads())
> diff --git a/tests/test-pull-update.t b/tests/test-pull-update.t
> --- a/tests/test-pull-update.t
> +++ b/tests/test-pull-update.t
> @@ -61,4 +61,66 @@ Should work:
> added 1 changesets with 1 changes to 1 files (-1 heads)
> 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
>
> +Similarity between "hg update" and "hg pull -u" in handling bookmark
> +====================================================================
> +
> +Test that updating activates the bookmark, which matches with the
> +explicit destination of the update.
> +
> + $ echo 4 >> foo
> + $ hg commit -m "#4"
> + $ hg bookmark active-after-pull
> + $ cd ../tt
> +
> +(1) activating by --rev BOOKMARK
> +
> + $ hg bookmark -f active-before-pull
> + $ hg bookmarks
> + * active-before-pull 3:483b76ad4309
> +
> + $ hg pull -u -r active-after-pull
> + pulling from $TESTTMP/t (glob)
> + searching for changes
> + adding changesets
> + adding manifests
> + adding file changes
> + added 1 changesets with 1 changes to 1 files
> + adding remote bookmark active-after-pull
> + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
> + (activating bookmark active-after-pull)
> +
> + $ hg parents -q
> + 4:f815b3da6163
> + $ hg bookmarks
> + * active-after-pull 4:f815b3da6163
> + active-before-pull 3:483b76ad4309
> +
> +(discard pulled changes)
> +
> + $ hg update -q 483b76ad4309
> + $ hg rollback -q
> +
> +(2) activating by URL#BOOKMARK
> +
> + $ hg bookmark -f active-before-pull
> + $ hg bookmarks
> + * active-before-pull 3:483b76ad4309
> +
> + $ hg pull -u $TESTTMP/t#active-after-pull
> + pulling from $TESTTMP/t (glob)
> + searching for changes
> + adding changesets
> + adding manifests
> + adding file changes
> + added 1 changesets with 1 changes to 1 files
> + adding remote bookmark active-after-pull
> + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
> + (activating bookmark active-after-pull)
> +
> + $ hg parents -q
> + 4:f815b3da6163
> + $ hg bookmarks
> + * active-after-pull 4:f815b3da6163
> + active-before-pull 3:483b76ad4309
> +
> $ cd ..
--
Pierre-Yves David
More information about the Mercurial-devel
mailing list