Mercurial > hg-stable
changeset 35522:02fdb8c018aa
update: support updating to hidden cset if directaccess config is set
This patch adds support for updating to a hidden changeset without using
--hidden if `experimental.directacces=True` is set. The update command will
print out a warning when updating to a hidden changeset saying:
`updating to a hidden changeset <hash>`
The warning is also printed when directaccess is not used and --hidden is
passed which I think is good behaviour. Tests are added for the directaccess
part and updated output of tests which have case of updating to hidden cset
using `--hidden`.
Differential Revision: https://phab.mercurial-scm.org/D1762
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Wed, 27 Dec 2017 00:14:00 +0530 |
parents | ba0fb0e33c3a |
children | 31fe397f2bda |
files | mercurial/commands.py tests/test-directaccess.t tests/test-log.t tests/test-obsmarker-template.t tests/test-obsolete.t tests/test-rebase-obsolete.t tests/test-update-branches.t |
diffstat | 7 files changed, 40 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Tue Dec 26 22:54:45 2017 +0530 +++ b/mercurial/commands.py Wed Dec 27 00:14:00 2017 +0530 @@ -5528,7 +5528,11 @@ # if we defined a bookmark, we have to remember the original name brev = rev - rev = scmutil.revsingle(repo, rev, rev).rev() + repo = scmutil.unhidehashlikerevs(repo, [rev], 'nowarn') + ctx = scmutil.revsingle(repo, rev, rev) + rev = ctx.rev() + if ctx.hidden(): + ui.warn(_("updating to a hidden changeset %s\n") % ctx.hex()[:12]) repo.ui.setconfig('ui', 'forcemerge', tool, 'update')
--- a/tests/test-directaccess.t Tue Dec 26 22:54:45 2017 +0530 +++ b/tests/test-directaccess.t Wed Dec 27 00:14:00 2017 +0530 @@ -143,6 +143,15 @@ $ hg status --change 28ad74 A c +`hg update` + + $ hg up 28ad74 + updating to a hidden changeset 28ad74487de9 + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + + $ hg up 3 + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + Commands with undefined cmdtype should not work right now $ hg phase -r 28ad74
--- a/tests/test-log.t Tue Dec 26 22:54:45 2017 +0530 +++ b/tests/test-log.t Wed Dec 27 00:14:00 2017 +0530 @@ -1824,6 +1824,7 @@ test that parent prevent a changeset to be hidden $ hg up 1 -q --hidden + updating to a hidden changeset a765632148dc $ hg log --template='{rev}:{node}\n' 1:a765632148dc55d38c35c4f247c618701886cb2f 0:9f758d63dcde62d547ebfb08e1e7ee96535f2b05
--- a/tests/test-obsmarker-template.t Tue Dec 26 22:54:45 2017 +0530 +++ b/tests/test-obsmarker-template.t Wed Dec 27 00:14:00 2017 +0530 @@ -75,6 +75,7 @@ Check templates --------------- $ hg up 'desc(A0)' --hidden + updating to a hidden changeset 471f378eab4c 1 files updated, 0 files merged, 0 files removed, 0 files unresolved Predecessors template should show current revision as it is the working copy @@ -146,6 +147,7 @@ summary: ROOT $ hg up 'desc(A1)' --hidden + updating to a hidden changeset a468dc9b3633 1 files updated, 0 files merged, 0 files removed, 0 files unresolved Predecessors template should show current revision as it is the working copy @@ -413,6 +415,7 @@ --------------- $ hg up 'obsolete()' --hidden + updating to a hidden changeset 471597cad322 0 files updated, 0 files merged, 0 files removed, 0 files unresolved Predecessors template should show current revision as it is the working copy @@ -620,6 +623,7 @@ --------------- $ hg up 'desc(A0)' --hidden + updating to a hidden changeset 471f378eab4c 0 files updated, 0 files merged, 1 files removed, 0 files unresolved Predecessors template should show current revision as it is the working copy @@ -644,6 +648,7 @@ o ea207398892e $ hg up 'desc(B0)' --hidden + updating to a hidden changeset 0dec01379d3b 1 files updated, 0 files merged, 0 files removed, 0 files unresolved Predecessors template should show both predecessors as they should be both @@ -809,6 +814,7 @@ summary: ROOT $ hg update --hidden 'desc(A0)' + updating to a hidden changeset 471f378eab4c 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg commit --amend -m "A2" $ hg log --hidden -G @@ -880,6 +886,7 @@ --------------- $ hg up 'desc(A0)' --hidden + updating to a hidden changeset 471f378eab4c 0 files updated, 0 files merged, 0 files removed, 0 files unresolved Predecessors template should show current revision as it is the working copy @@ -1144,6 +1151,7 @@ --------------- $ hg up 'desc(A0)' --hidden + updating to a hidden changeset 471f378eab4c 0 files updated, 0 files merged, 1 files removed, 0 files unresolved Predecessors template should show current revision as it is the working copy @@ -1168,6 +1176,7 @@ o ea207398892e $ hg up 'desc(B0)' --hidden + updating to a hidden changeset 0dec01379d3b 1 files updated, 0 files merged, 0 files removed, 0 files unresolved Predecessors template should both predecessors as they are visible @@ -1198,6 +1207,7 @@ o ea207398892e $ hg up 'desc(B1)' --hidden + updating to a hidden changeset b7ea6d14e664 0 files updated, 0 files merged, 0 files removed, 0 files unresolved Predecessors template should both predecessors as they are visible @@ -1599,6 +1609,7 @@ $ hg up -r "desc(B0)" --hidden + updating to a hidden changeset 0dec01379d3b 2 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg tlog o f897c6137566 @@ -2059,6 +2070,7 @@ o ea207398892e $ hg up --hidden 4 + updating to a hidden changeset 9bd10a0775e4 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg rebase -r 7 -d 8 --config extensions.rebase= rebasing 7:ba2ed02b0c9a "Add A,B,C" @@ -2303,6 +2315,7 @@ obsoleted 1 changesets $ hg up -r "desc(A0)" --hidden + updating to a hidden changeset 471f378eab4c 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg commit --amend -m "A2" $ hg debugobsolete --record-parent `getid "."` @@ -2312,6 +2325,7 @@ ------------ $ hg up "desc(A0)" --hidden + updating to a hidden changeset 471f378eab4c 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg tlog @ 471f378eab4c @@ -2465,6 +2479,7 @@ --------------- $ hg up 'desc("A0")' --hidden + updating to a hidden changeset 471597cad322 0 files updated, 0 files merged, 0 files removed, 0 files unresolved # todo: the obsfate output is not ideal @@ -2476,6 +2491,7 @@ o ea207398892e $ hg up -r 'desc("A2")' --hidden + updating to a hidden changeset 0d0ef4bdf70e 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg fatelog --hidden
--- a/tests/test-obsolete.t Tue Dec 26 22:54:45 2017 +0530 +++ b/tests/test-obsolete.t Wed Dec 27 00:14:00 2017 +0530 @@ -62,6 +62,7 @@ $ hg tip -1:000000000000 (public) [tip ] $ hg up --hidden tip --quiet + updating to a hidden changeset 97b7c2d76b18 Killing a single changeset with itself should fail (simple local safeguard)
--- a/tests/test-rebase-obsolete.t Tue Dec 26 22:54:45 2017 +0530 +++ b/tests/test-rebase-obsolete.t Wed Dec 27 00:14:00 2017 +0530 @@ -280,6 +280,7 @@ even though it is hidden (until we're moved there). $ hg --hidden up -qr 'first(hidden())' + updating to a hidden changeset 42ccdea3bb16 $ hg rebase --rev 13 --dest 15 rebasing 13:98f6af4ee953 "C" $ hg log -G @@ -610,6 +611,7 @@ Test hidden changesets in the rebase set (issue4504) $ hg up --hidden 9 + updating to a hidden changeset 4bde274eefcf 3 files updated, 0 files merged, 1 files removed, 0 files unresolved $ echo J > J $ hg add J @@ -725,6 +727,7 @@ $ hg commit --amend -m B1 $ hg commit --amend -m B2 $ hg up --hidden 'desc(B0)' + updating to a hidden changeset a8b11f55fb19 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ echo C > C $ hg add C @@ -748,6 +751,7 @@ Even when the chain include missing node $ hg up --hidden 'desc(B0)' + updating to a hidden changeset a8b11f55fb19 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ echo D > D $ hg add D @@ -862,6 +866,7 @@ $ hg add bar $ hg commit --amend -m "10'" $ hg up 10 --hidden + updating to a hidden changeset 121d9e3bc4c6 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ echo "bar" > foo $ hg add foo @@ -1595,6 +1600,7 @@ $ rm .hg/localtags $ hg update -q $C --hidden + updating to a hidden changeset 7829726be4dc $ hg rebase -s $B -d $D rebasing 1:2ec65233581b "B" merging D
--- a/tests/test-update-branches.t Tue Dec 26 22:54:45 2017 +0530 +++ b/tests/test-update-branches.t Wed Dec 27 00:14:00 2017 +0530 @@ -520,6 +520,7 @@ the bookmark with it $ hg up --quiet 0 # we should be able to update to 3 directly $ hg up --quiet --hidden 3 # but not implemented yet. + updating to a hidden changeset 6efa171f091b $ hg book -f bm $ hg up 1 files updated, 0 files merged, 0 files removed, 0 files unresolved @@ -530,6 +531,7 @@ Test that 5 is detected as a valid destination from 1 $ hg up --quiet 0 # we should be able to update to 3 directly $ hg up --quiet --hidden 3 # but not implemented yet. + updating to a hidden changeset 6efa171f091b $ hg up 5 1 files updated, 0 files merged, 0 files removed, 0 files unresolved