[PATCH 1 of 4 V2-SeriesB] clfilter: enforce hidden changeset globally
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Tue Jan 8 14:10:42 CST 2013
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at logilab.fr>
# Date 1357673857 -3600
# Node ID d4e10f74e85ecf9fb2c04fa2f9065b83a1439eaa
# Parent a32255dee8599db1e1fdcca1a4d09f0ed25b6d60
clfilter: enforce hidden changeset globally
The dispatch code now enables filtering of "hidden" changesets globally. The
filter is installed before command and extension invocation. The `--hidden`
switch is now global and disables this filtering for any command.
Code in log dedicated to changeset exclusion is removed as this global filtering
has the same effect.
diff --git a/hgext/graphlog.py b/hgext/graphlog.py
--- a/hgext/graphlog.py
+++ b/hgext/graphlog.py
@@ -37,11 +37,10 @@ testedwith = 'internal'
_('BRANCH')),
('b', 'branch', [],
_('show changesets within the given named branch'), _('BRANCH')),
('P', 'prune', [],
_('do not display revision or any of its ancestors'), _('REV')),
- ('', 'hidden', False, _('show hidden changesets (DEPRECATED)')),
] + commands.logopts + commands.walkopts,
_('[OPTION]... [FILE]'))
def graphlog(ui, repo, *pats, **opts):
"""show revision history alongside an ASCII revision graph
diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -1404,12 +1404,10 @@ def getgraphlogrevs(repo, pats, opts):
limit = loglimit(opts)
# Default --rev value depends on --follow but --follow behaviour
# depends on revisions resolved from --rev...
follow = opts.get('follow') or opts.get('follow_first')
possiblyunsorted = False # whether revs might need sorting
- if not opts.get('hidden'):
- repo = repo.filtered('hidden')
if opts.get('rev'):
revs = scmutil.revrange(repo, opts['rev'])
# Don't sort here because _makegraphlogrevset might depend on the
# order of revs
possiblyunsorted = True
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -47,10 +47,11 @@ globalopts = [
('', 'traceback', None, _('always print a traceback on exception')),
('', 'time', None, _('time how long the command takes')),
('', 'profile', None, _('print command execution profile')),
('', 'version', None, _('output version information and exit')),
('h', 'help', None, _('display help and exit')),
+ ('', 'hidden', False, _('consider hidden changesets')),
]
dryrunopts = [('n', 'dry-run', None,
_('do not perform actions, just print output'))]
@@ -4087,11 +4088,10 @@ def locate(ui, repo, *pats, **opts):
_('BRANCH')),
('b', 'branch', [],
_('show changesets within the given named branch'), _('BRANCH')),
('P', 'prune', [],
_('do not display revision or any of its ancestors'), _('REV')),
- ('', 'hidden', False, _('show hidden changesets (DEPRECATED)')),
] + logopts + walkopts,
_('[OPTION]... [FILE]'))
def log(ui, repo, *pats, **opts):
"""show revision history of entire repository or files
@@ -4203,12 +4203,10 @@ def log(ui, repo, *pats, **opts):
return
if opts.get('only_merges') and len(parents) != 2:
return
if opts.get('branch') and ctx.branch() not in opts['branch']:
return
- if not opts.get('hidden') and ctx.hidden():
- return
if df and not df(ctx.date()[0]):
return
lower = encoding.lower
if opts.get('user'):
diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py
--- a/mercurial/dispatch.py
+++ b/mercurial/dispatch.py
@@ -708,10 +708,14 @@ def _dispatch(req):
else:
try:
repo = hg.repository(ui, path=path)
if not repo.local():
raise util.Abort(_("repository '%s' is not local") % path)
+ if not options['hidden']:
+ repo = repo.filtered('hidden')
+ else:
+ repo = repo.unfiltered()
repo.ui.setconfig("bundle", "mainreporoot", repo.root)
except error.RequirementError:
raise
except error.RepoError:
if cmd not in commands.optionalrepo.split():
diff --git a/tests/test-commit-amend.t b/tests/test-commit-amend.t
--- a/tests/test-commit-amend.t
+++ b/tests/test-commit-amend.t
@@ -490,13 +490,13 @@ ride of)
Test that amend does not make it easy to create obsoletescence cycle
---------------------------------------------------------------------
- $ hg id -r 14
+ $ hg id -r 14 --hidden
b650e6ee8614 (a)
- $ hg revert -ar 14
+ $ hg revert -ar 14 --hidden
reverting a
$ hg commit --amend
$ hg id
b99e5df575f7 (a) tip
diff --git a/tests/test-debugcomplete.t b/tests/test-debugcomplete.t
--- a/tests/test-debugcomplete.t
+++ b/tests/test-debugcomplete.t
@@ -121,10 +121,11 @@ Show the global options
--debug
--debugger
--encoding
--encodingmode
--help
+ --hidden
--noninteractive
--profile
--quiet
--repository
--time
@@ -151,10 +152,11 @@ Show the options for the "serve" command
--debugger
--encoding
--encodingmode
--errorlog
--help
+ --hidden
--ipv6
--name
--noninteractive
--pid-file
--port
@@ -198,11 +200,11 @@ Show all commands + options
commit: addremove, close-branch, amend, include, exclude, message, logfile, date, user, subrepos
diff: rev, change, text, git, nodates, show-function, reverse, ignore-all-space, ignore-space-change, ignore-blank-lines, unified, stat, include, exclude, subrepos
export: output, switch-parent, rev, text, git, nodates
forget: include, exclude
init: ssh, remotecmd, insecure
- log: follow, follow-first, date, copies, keyword, rev, removed, only-merges, user, only-branch, branch, prune, hidden, patch, git, limit, no-merges, stat, graph, style, template, include, exclude
+ log: follow, follow-first, date, copies, keyword, rev, removed, only-merges, user, only-branch, branch, prune, patch, git, limit, no-merges, stat, graph, style, template, include, exclude
merge: force, rev, preview, tool
pull: update, force, rev, bookmark, branch, ssh, remotecmd, insecure
push: force, rev, bookmark, branch, new-branch, ssh, remotecmd, insecure
remove: after, force, include, exclude
serve: accesslog, daemon, daemon-pipefds, errorlog, port, address, prefix, name, web-conf, webdir-conf, pid-file, stdio, cmdserver, templates, style, ipv6, certificate
diff --git a/tests/test-extension.t b/tests/test-extension.t
--- a/tests/test-extension.t
+++ b/tests/test-extension.t
@@ -198,10 +198,11 @@ hide outer repo
--traceback always print a traceback on exception
--time time how long the command takes
--profile print command execution profile
--version output version information and exit
-h --help display help and exit
+ --hidden consider hidden changesets
[+] marked option can be specified multiple times
$ hg --debug help debugextension
debugextension extension - only debugcommands
@@ -228,10 +229,11 @@ hide outer repo
--traceback always print a traceback on exception
--time time how long the command takes
--profile print command execution profile
--version output version information and exit
-h --help display help and exit
+ --hidden consider hidden changesets
[+] marked option can be specified multiple times
$ echo 'debugextension = !' >> $HGRCPATH
Extension module help vs command help:
diff --git a/tests/test-help.t b/tests/test-help.t
--- a/tests/test-help.t
+++ b/tests/test-help.t
@@ -246,10 +246,11 @@ Test short command list with verbose opt
--traceback always print a traceback on exception
--time time how long the command takes
--profile print command execution profile
--version output version information and exit
-h --help display help and exit
+ --hidden consider hidden changesets
[+] marked option can be specified multiple times
use "hg help" for the full list of commands
@@ -332,10 +333,11 @@ Verbose help for add
--traceback always print a traceback on exception
--time time how long the command takes
--profile print command execution profile
--version output version information and exit
-h --help display help and exit
+ --hidden consider hidden changesets
[+] marked option can be specified multiple times
Test help option with version option
diff --git a/tests/test-keyword.t b/tests/test-keyword.t
--- a/tests/test-keyword.t
+++ b/tests/test-keyword.t
@@ -574,10 +574,11 @@ Copy and show added kwfiles
c
Commit and show expansion in original and copy
$ hg --debug commit -ma2c -d '1 0' -u 'User Name <user at example.com>'
+ invalid branchheads cache (unserved): tip differs
c
c: copy a:0045e12f6c5791aac80ca6cbfd97709a88307292
overwriting c expanding keywords
committed changeset 2:25736cf2f5cbe41f6be4e6784ef6ecf9f3bbcc7d
$ cat a c
@@ -757,11 +758,10 @@ Commit with multi-line message and custo
| cache is not updated on disk. The on disk version therefor stay invalid for
| some time. This explains why the "unserved" branchheads cache is detect
| invalid here.
$ hg --debug commit -l log -d '2 0' -u 'User Name <user at example.com>'
- invalid branchheads cache: tip differs
invalid branchheads cache (unserved): tip differs
a
invalid branchheads cache: tip differs
invalid branchheads cache (unserved): tip differs
overwriting a expanding keywords
@@ -804,11 +804,10 @@ remove with status checks
$ hg debugrebuildstate
$ hg remove a
$ hg --debug commit -m rma
invalid branchheads cache: tip differs
- invalid branchheads cache: tip differs
committed changeset 3:d14c712653769de926994cf7fbb06c8fbd68f012
$ hg status
? c
Rollback, revert, and check expansion
@@ -915,11 +914,10 @@ kwexpand x/a should abort
$ hg --verbose kwexpand x/a
abort: outstanding uncommitted changes
[255]
$ cd x
$ hg --debug commit -m xa -d '3 0' -u 'User Name <user at example.com>'
- invalid branchheads cache: tip differs
x/a
x/a: copy a:779c764182ce5d43e2b1eb66ce06d7b47bfe342e
invalid branchheads cache: tip differs
overwriting x/a expanding keywords
committed changeset 3:b4560182a3f9a358179fd2d835c15e9da379c1e4
diff --git a/tests/test-log.t b/tests/test-log.t
--- a/tests/test-log.t
+++ b/tests/test-log.t
@@ -1162,11 +1162,11 @@ enable obsolete to test hidden feature
1:a765632148dc55d38c35c4f247c618701886cb2f
0:9f758d63dcde62d547ebfb08e1e7ee96535f2b05
test that parent prevent a changeset to be hidden
- $ hg up 1 -q
+ $ hg up 1 -q --hidden
$ hg log --template='{rev}:{node}\n'
1:a765632148dc55d38c35c4f247c618701886cb2f
0:9f758d63dcde62d547ebfb08e1e7ee96535f2b05
test that second parent prevent a changeset to be hidden too
diff --git a/tests/test-newbranch.t b/tests/test-newbranch.t
--- a/tests/test-newbranch.t
+++ b/tests/test-newbranch.t
@@ -134,11 +134,10 @@ Test for invalid branch cache:
summary: modify a branch
$ cp .hg/bc-invalid $branchcache
$ hg --debug log -r foo
- invalid branchheads cache: tip differs
changeset: 4:adf1a74a7f7b4cd193d12992f5d0d6a004ed21d6
branch: foo
tag: tip
phase: draft
parent: 1:6c0e42da283a56b5edc5b4fadb491365ec7f5fa8
diff --git a/tests/test-obsolete-divergent.t b/tests/test-obsolete-divergent.t
--- a/tests/test-obsolete-divergent.t
+++ b/tests/test-obsolete-divergent.t
@@ -25,11 +25,11 @@ Enable obsolete
> echo "$1" > "$1"
> hg add "$1"
> hg ci -m "$1"
> }
$ getid() {
- > hg id --debug -ir "desc('$1')"
+ > hg id --debug --hidden -ir "desc('$1')"
> }
setup repo
$ hg init reference
@@ -70,11 +70,11 @@ A_1 have two direct and divergent succes
|/
| x 1:007dc284c1f8 A_0
|/
@ 0:d20a80d4def3 base
- $ hg debugsuccessorssets 'all()'
+ $ hg debugsuccessorssets --hidden 'all()'
d20a80d4def3
d20a80d4def3
007dc284c1f8
392fd25390da
82623d38b9ba
@@ -117,11 +117,11 @@ indirect divergence with known changeset
|/
| x 1:007dc284c1f8 A_0
|/
o 0:d20a80d4def3 base
- $ hg debugsuccessorssets 'all()'
+ $ hg debugsuccessorssets --hidden 'all()'
d20a80d4def3
d20a80d4def3
007dc284c1f8
01f36c5a8fda
82623d38b9ba
@@ -152,11 +152,11 @@ indirect divergence with known changeset
|/
| x 1:007dc284c1f8 A_0
|/
@ 0:d20a80d4def3 base
- $ hg debugsuccessorssets 'all()'
+ $ hg debugsuccessorssets --hidden 'all()'
d20a80d4def3
d20a80d4def3
007dc284c1f8
392fd25390da
82623d38b9ba
@@ -178,11 +178,11 @@ do not take unknown node in account if t
invalid branchheads cache (unserved): tip differs
$ hg debugobsolete `getid A_0` bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
$ hg debugobsolete bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb cccccccccccccccccccccccccccccccccccccccc
$ hg debugobsolete `getid A_1` dddddddddddddddddddddddddddddddddddddddd
- $ hg debugsuccessorssets 'desc('A_0')'
+ $ hg debugsuccessorssets --hidden 'desc('A_0')'
007dc284c1f8
392fd25390da
$ cd ..
@@ -206,11 +206,11 @@ divergence that converge again is not di
|/
| x 1:007dc284c1f8 A_0
|/
o 0:d20a80d4def3 base
- $ hg debugsuccessorssets 'all()'
+ $ hg debugsuccessorssets --hidden 'all()'
d20a80d4def3
d20a80d4def3
007dc284c1f8
01f36c5a8fda
82623d38b9ba
@@ -234,11 +234,11 @@ split is not divergences
|/
| x 1:007dc284c1f8 A_0
|/
@ 0:d20a80d4def3 base
- $ hg debugsuccessorssets 'all()'
+ $ hg debugsuccessorssets --hidden 'all()'
d20a80d4def3
d20a80d4def3
007dc284c1f8
82623d38b9ba 392fd25390da
82623d38b9ba
@@ -275,11 +275,11 @@ Even when subsequente rewriting happen
|/
| x 1:007dc284c1f8 A_0
|/
o 0:d20a80d4def3 base
- $ hg debugsuccessorssets 'all()'
+ $ hg debugsuccessorssets --hidden 'all()'
d20a80d4def3
d20a80d4def3
007dc284c1f8
01f36c5a8fda e442cfc57690
82623d38b9ba
@@ -331,11 +331,11 @@ Check more complexe obsolescence graft (
|/
| x 1:007dc284c1f8 A_0
|/
@ 0:d20a80d4def3 base
- $ hg debugsuccessorssets 'all()'
+ $ hg debugsuccessorssets --hidden 'all()'
d20a80d4def3
d20a80d4def3
007dc284c1f8
01f36c5a8fda bed64f5d2f5a
01f36c5a8fda 7ae126973a96 14608b260df8
@@ -398,11 +398,11 @@ fix the divergence
|/
| x 1:007dc284c1f8 A_0
|/
@ 0:d20a80d4def3 base
- $ hg debugsuccessorssets 'all()'
+ $ hg debugsuccessorssets --hidden 'all()'
d20a80d4def3
d20a80d4def3
007dc284c1f8
01f36c5a8fda a139f71be9da
82623d38b9ba
@@ -438,10 +438,10 @@ successors-set. (report [A,B] not [A] +
$ newcase subset
$ hg debugobsolete `getid A_0` `getid A_2`
$ hg debugobsolete `getid A_0` `getid A_1` `getid A_2`
invalid branchheads cache (unserved): tip differs
- $ hg debugsuccessorssets 'desc('A_0')'
+ $ hg debugsuccessorssets --hidden 'desc('A_0')'
007dc284c1f8
82623d38b9ba 392fd25390da
$ cd ..
diff --git a/tests/test-obsolete.t b/tests/test-obsolete.t
--- a/tests/test-obsolete.t
+++ b/tests/test-obsolete.t
@@ -9,11 +9,11 @@
> echo "$1" > "$1"
> hg add "$1"
> hg ci -m "add $1"
> }
$ getid() {
- > hg id --debug -ir "desc('$1')"
+ > hg id --debug --hidden -ir "desc('$1')"
> }
$ cat > debugkeys.py <<EOF
> def reposetup(ui, repo):
> class debugkeysrepo(repo.__class__):
@@ -128,11 +128,11 @@ Check that graphlog detect that a change
summary: add a
Check that public changeset are not accounted as obsolete:
- $ hg phase --public 2
+ $ hg --hidden phase --public 2
$ hg --config 'extensions.graphlog=' glog
@ changeset: 5:5601fb93a350
| tag: tip
| parent: 1:7c3bad9141dc
| user: test
More information about the Mercurial-devel
mailing list