# HG changeset patch # User Boris Feld # Date 1493391369 -7200 # Node ID a36a8c6a09aca3482107bc5df2254028c4667add # Parent 61d073590fb799e02075656c5e70d028829ffd3a ui: change the hidden revision error message It now display the same details than the warning when the working directory parent become obsolete like: $ hg update 0 abort: hidden revision '0' (successor: f301a99bd857)! $ hg up 1 abort: hidden revision '1' (pruned)! $ hg update 0 abort: hidden revision '0' (successors: 91311af6da10, 70653776ec4c)! diff -r 61d073590fb7 -r a36a8c6a09ac README --- a/README Fri Apr 28 16:57:41 2017 +0200 +++ b/README Fri Apr 28 16:56:09 2017 +0200 @@ -115,7 +115,8 @@ 6.1.0 - in progress ------------------- - - improve messages about obsolete working copy parent, + - improve message about obsolete working copy parent, + - improve message issued when accessing hidden nodes, - add a 'experimental.auto-publish' config. Set it so 'warn' to get a warning when a push is publishing some draft changesets and 'abort' to prevent that to happen at all. diff -r 61d073590fb7 -r a36a8c6a09ac hgext3rd/evolve/__init__.py --- a/hgext3rd/evolve/__init__.py Fri Apr 28 16:57:41 2017 +0200 +++ b/hgext3rd/evolve/__init__.py Fri Apr 28 16:56:09 2017 +0200 @@ -3186,3 +3186,35 @@ f.write(orig.topic()) return merge.graft(repo, orig, pctx, ['local', 'graft'], True) + + +@eh.wrapfunction(context, '_filterederror') +def evolve_filtererror(original, repo, changeid): + """build an exception to be raised about a filtered changeid + + This is extracted in a function to help extensions (eg: evolve) to + experiment with various message variants.""" + if repo.filtername.startswith('visible'): + + unfilteredrepo = repo.unfiltered() + rev = unfilteredrepo[changeid] + reason, successors = _getobsoletereason(unfilteredrepo, rev.node()) + + # Be more precise in cqse the revision is superseed + if reason == 'superseed': + reason = _("successor: %s") % successors[0] + elif reason == 'superseed_split': + if len(successors) <= 2: + reason = _("successors: %s") % ", ".join(successors) + else: + firstsuccessors = ", ".join(successors[:2]) + remainingnumber = len(successors) - 2 + successorsmsg = _("%s and %d more") % (firstsuccessors, remainingnumber) + reason = _("successors: %s") % successorsmsg + + msg = _("hidden revision '%s'") % changeid + hint = _('use --hidden to access hidden revisions; %s') % reason + return error.FilteredRepoLookupError(msg, hint=hint) + msg = _("filtered revision '%s' (not in '%s' subset)") + msg %= (changeid, repo.filtername) + return error.FilteredRepoLookupError(msg) diff -r 61d073590fb7 -r a36a8c6a09ac tests/test-evolve-obshistory.t --- a/tests/test-evolve-obshistory.t Fri Apr 28 16:57:41 2017 +0200 +++ b/tests/test-evolve-obshistory.t Fri Apr 28 16:56:09 2017 +0200 @@ -52,6 +52,10 @@ Actual test ----------- + $ hg update 471f378eab4c + abort: hidden revision '471f378eab4c'! + (use --hidden to access hidden revisions; successor: a468dc9b3633) + [255] $ hg update --hidden "desc(A0)" 1 files updated, 0 files merged, 0 files removed, 0 files unresolved working directory parent is obsolete! (471f378eab4c) @@ -93,6 +97,12 @@ Actual test ----------- + $ hg up 1 + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg up 0dec01379d3b + abort: hidden revision '0dec01379d3b'! + (use --hidden to access hidden revisions; pruned) + [255] $ hg up --hidden -r 'desc(B0)' 1 files updated, 0 files merged, 0 files removed, 0 files unresolved working directory parent is obsolete! (0dec01379d3b) @@ -185,6 +195,10 @@ Actual test ----------- + $ hg update 471597cad322 + abort: hidden revision '471597cad322'! + (use --hidden to access hidden revisions; successors: 337fec4d2edc, f257fde29c7a) + [255] $ hg update --hidden 'min(desc(A0))' 0 files updated, 0 files merged, 0 files removed, 0 files unresolved working directory parent is obsolete! (471597cad322) @@ -343,6 +357,10 @@ Actual test ----------- + $ hg update de7290d8b885 + abort: hidden revision 'de7290d8b885'! + (use --hidden to access hidden revisions; successors: 337fec4d2edc, f257fde29c7a and 2 more) + [255] $ hg update --hidden 'min(desc(A0))' 0 files updated, 0 files merged, 0 files removed, 0 files unresolved working directory parent is obsolete! (de7290d8b885) @@ -405,10 +423,20 @@ Actual test ----------- + $ hg update 471f378eab4c + abort: hidden revision '471f378eab4c'! + (use --hidden to access hidden revisions; successor: eb5a0daa2192) + [255] $ hg update --hidden 'desc(A0)' 0 files updated, 0 files merged, 1 files removed, 0 files unresolved working directory parent is obsolete! (471f378eab4c) (use 'hg evolve' to update to its successor: eb5a0daa2192) + $ hg update 0dec01379d3b + working directory parent is obsolete! (471f378eab4c) + (use 'hg evolve' to update to its successor: eb5a0daa2192) + abort: hidden revision '0dec01379d3b'! + (use --hidden to access hidden revisions; successor: eb5a0daa2192) + [255] $ hg update --hidden 'desc(B0)' 1 files updated, 0 files merged, 0 files removed, 0 files unresolved working directory parent is obsolete! (0dec01379d3b) @@ -478,6 +506,10 @@ Actual test ----------- + $ hg update 471f378eab4c + abort: hidden revision '471f378eab4c'! + (use --hidden to access hidden revisions; diverged) + [255] $ hg update --hidden 'desc(A0)' 0 files updated, 0 files merged, 0 files removed, 0 files unresolved working directory parent is obsolete! (471f378eab4c) diff -r 61d073590fb7 -r a36a8c6a09ac tests/test-evolve.t --- a/tests/test-evolve.t Fri Apr 28 16:57:41 2017 +0200 +++ b/tests/test-evolve.t Fri Apr 28 16:56:09 2017 +0200 @@ -722,7 +722,7 @@ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg fold --from 6 # want to run hg fold 6 abort: hidden revision '6'! - (use --hidden to access hidden revisions) + (use --hidden to access hidden revisions; successor: af636757ce3b) [255] $ hg log -r 11 --template '{desc}\n' add 3 diff -r 61d073590fb7 -r a36a8c6a09ac tests/test-inhibit.t --- a/tests/test-inhibit.t Fri Apr 28 16:57:41 2017 +0200 +++ b/tests/test-inhibit.t Fri Apr 28 16:56:09 2017 +0200 @@ -364,7 +364,7 @@ $ hg export 1 3 abort: hidden revision '1'! - (use --hidden to access hidden revisions) + (use --hidden to access hidden revisions; pruned) [255] @@ -432,7 +432,7 @@ $ hg rebase -s 10 -d 3 abort: hidden revision '3'! - (use --hidden to access hidden revisions) + (use --hidden to access hidden revisions; pruned) [255] $ hg rebase -r ad78ff7d621f -r 53a94305e133 -d 2db36d8066ff --config experimental.rebaseskipobsolete=0 Warning: accessing hidden changesets 2db36d8066ff for write operation @@ -803,7 +803,7 @@ $ hg push -r 003a4735afde $pwd/inhibit2 pushing to $TESTTMP/inhibit2 abort: hidden revision '003a4735afde'! - (use --hidden to access hidden revisions) + (use --hidden to access hidden revisions; successor: 71eb4f100663) [255] Visible commits can still be pushed diff -r 61d073590fb7 -r a36a8c6a09ac tests/test-prune.t --- a/tests/test-prune.t Fri Apr 28 16:57:41 2017 +0200 +++ b/tests/test-prune.t Fri Apr 28 16:56:09 2017 +0200 @@ -305,7 +305,7 @@ 1 changesets pruned $ hg id -ir dcbb326fdec2 abort: hidden revision 'dcbb326fdec2'! - (use --hidden to access hidden revisions) + (use --hidden to access hidden revisions; pruned) [255] $ hg id -ir d62d843c9a01 d62d843c9a01 @@ -339,7 +339,7 @@ $ hg tag --remove --local c $ hg id -ir 6:2702dd0c91e7 abort: hidden revision '6'! - (use --hidden to access hidden revisions) + (use --hidden to access hidden revisions; pruned) [255] $ hg debugobsstorestat diff -r 61d073590fb7 -r a36a8c6a09ac tests/test-userguide.t --- a/tests/test-userguide.t Fri Apr 28 16:57:41 2017 +0200 +++ b/tests/test-userguide.t Fri Apr 28 16:56:09 2017 +0200 @@ -39,7 +39,7 @@ $ hg commit --amend -u alice -d '2 0' -m 'implement feature Y' $ hg shortlog -q -r fe0ecd3bd2a4 abort: hidden revision 'fe0ecd3bd2a4'! - (use --hidden to access hidden revisions) + (use --hidden to access hidden revisions; successor: 934359450037) [255] $ hg --hidden shortlog -G @ 3:934359450037 draft implement feature Y