Augie Fackler <raf@durin42.com> [Tue, 29 Dec 2015 18:11:14 -0500] rev 27556
test-glog: avoid check-code violation after next patch
Danek's patch will help us avoid spurious test breakages on
Solaris. This test wasn't broken on Solaris because of the grep(1)
use, but it will upset check-code. Use cmp to silence check-code since
it doesn't matter.
Yuya Nishihara <yuya@tcha.org> [Sat, 26 Dec 2015 15:18:16 +0900] rev 27555
push: restore old behavior of default-push (
issue5000)
This effectively backs out
dceaef70e410 and
10917b062adf.
We can't handle "default-push" just like "default:pushurl" because it is a
stand-alone named path. Instead, I have two ideas to work around the issue:
a. two defaults: getpath(dest, default=('default-push', 'default'))
b. virtual path: getpath(dest, default=':default')
(a) is conservative approach and will have less trouble, but callers have
to specify they need "default-push" or "default". (b) generates hidden
":default" path from "default" and "default-push", and callers request
":default". This will require some tricks and won't work if there are
conflicting sub-options valid for both "pull" and "push".
I'll take (a) for default branch. This patch should NOT BE MERGED to default
except for tests because it would break handling of "pushurl" sub-option.
Yoshinari Takaoka <mumumu@mumumu.org> [Tue, 29 Dec 2015 00:48:03 +0900] rev 27554
hgweb: fixed invalid atom-log feed url in file log page
currently "subscribe to atom feed" link in file log page is as follows.
/atom-log/[revision]/[file]
This is invalid, because we could not get newer commit feed than [revision].
To fix this, atom-log feed url should be the following style.
atom-log/tip/[file]
Laurent Charignon <lcharignon@fb.com> [Tue, 29 Dec 2015 10:21:39 -0800] rev 27553
repair: improves documentation of strip regarding locks
This patch adds a comment making it clear that we should hold a lock before
calling repair.strip. The wording is the same than what we have for
obsolete.createmarkers
timeless <timeless@mozdev.org> [Tue, 29 Dec 2015 15:02:13 +0000] rev 27552
help: remove stray double spaces from config help
timeless <timeless@mozdev.org> [Tue, 29 Dec 2015 15:00:04 +0000] rev 27551
help: clarify that the config hook priority prefix includes a period
Anton Shestakov <av6@dwimlabs.net> [Tue, 29 Dec 2015 01:40:34 +0800] rev 27550
monoblue: correct feed links on /branches, /tags and /bookmarks
Anton Shestakov <av6@dwimlabs.net> [Tue, 29 Dec 2015 18:17:29 +0800] rev 27549
gitweb: describe feed type in links on /branches, /tags and /bookmarks
Anton Shestakov <av6@dwimlabs.net> [Tue, 29 Dec 2015 18:16:09 +0800] rev 27548
gitweb: link to the correct feeds from help pages
timeless <timeless@mozdev.org> [Wed, 23 Dec 2015 23:51:29 +0000] rev 27547
histedit: handle exceptions from node.bin in fromrule
timeless <timeless@mozdev.org> [Wed, 23 Dec 2015 23:23:28 +0000] rev 27546
histedit: limit cleanup of histedit-last-edit.txt to success
timeless <timeless@mozdev.org> [Sun, 27 Dec 2015 03:33:09 +0000] rev 27545
histedit: use parse-error exception for parsing
timeless <timeless@mozdev.org> [Fri, 11 Dec 2015 07:08:36 +0000] rev 27544
test-histedit-edit: test histedit with dirty repo
timeless <timeless@mozdev.org> [Fri, 11 Dec 2015 07:08:09 +0000] rev 27543
histedit: limit mentioning histedit-last-edit.txt
Before histedit-last-edit.txt would be mentioned for any failure.
After, it should only be mentioned for failures relating to user
input.
timeless <timeless@mozdev.org> [Mon, 28 Dec 2015 22:53:22 +0000] rev 27542
histedit: check fold of public change during verify
timeless <timeless@mozdev.org> [Mon, 28 Dec 2015 22:52:48 +0000] rev 27541
histedit: pass previous action to verify
timeless <timeless@mozdev.org> [Thu, 17 Dec 2015 14:56:14 +0000] rev 27540
annotate: mention that -n is suppressed in help
Bryan O'Sullivan <bos@serpentine.com> [Wed, 23 Dec 2015 16:22:20 -0800] rev 27539
test-bundle2-format: force gc so a GeneratorExit will be thrown
PyPy has looser semantics than CPython for when a generator's close
method will be called. Forcing the gc causes it to be called at
the right moment.
Bryan O'Sullivan <bos@serpentine.com> [Wed, 23 Dec 2015 16:22:20 -0800] rev 27538
test-bad-extension: account for PyPy/CPython error difference
Bryan O'Sullivan <bos@serpentine.com> [Wed, 23 Dec 2015 16:22:20 -0800] rev 27537
demandimport: update obsolete comment
Bryan O'Sullivan <bos@serpentine.com> [Wed, 23 Dec 2015 16:22:20 -0800] rev 27536
demandimport: add support for PyPy
PyPy's implementation of __import__ differs subtly from that of CPython.
If invoked without a name or fromlist, it throws an ImportError,
whereas CPython returns a reference to the level-appropriate importing
package.
Here, we achieve the same behaviour by hand.
Bryan O'Sullivan <bos@serpentine.com> [Wed, 23 Dec 2015 16:22:20 -0800] rev 27535
test-demandimport: ensure that relative imports are deferred
This adds a test not just at our local "top level" (the mercurial
package), but also one level deeper (mercurial.hgweb).
Bryan O'Sullivan <bos@serpentine.com> [Wed, 23 Dec 2015 16:22:20 -0800] rev 27534
histedit: don't bother with cPickle, demand-load pickle
We're unlikely to ever need the pickle module, so there's no good
reason to force loading of its faster cousin.
Matt Mackall <mpm@selenic.com> [Mon, 28 Dec 2015 10:11:48 -0600] rev 27533
merge with stable
Sean Farley <sean@farley.io> [Wed, 16 Dec 2015 10:39:00 -0800] rev 27532
crecord: stop raising error.Abort if curses is not found (
issue5008)
On some servers, python curses support is disabled. This patch not only fixes
that but provides a fallback on other machines (e.g. Windows) when curses is
not found.
The previous code was actually flawed logic and relied on wcurses throwing an
ImportError which demandimport wouldn't throw. So, this patch also fixes that
problem.
Sean Farley <sean@farley.io> [Tue, 15 Dec 2015 16:01:45 -0800] rev 27531
cmdutil: use crecordmod.checkcurses
Instead of blindly trusting the user's experimental.crecord, we use checkcurses
to abstract that logic so that we can handle the case where python was not
built with curses.
Sean Farley <sean@farley.io> [Tue, 15 Dec 2015 16:00:06 -0800] rev 27530
crecord: ensure that curses is False if not imported
This provides no functional change but makes the next two patches easier to
review.
Sean Farley <sean@farley.io> [Tue, 15 Dec 2015 15:56:10 -0800] rev 27529
crecord: add helper function to determine if we should use curses
To fix
issue5008 properly, we need a helper function to determine if curses is
imported and also if the user has enabled the experimental flag.
Sean Farley <sean@farley.io> [Wed, 16 Dec 2015 10:33:19 -0800] rev 27528
crecord: use try/except for import of curses
Not only does this improve fragility with 'if os.name == ...' it will help
future patches enable the behavior to fallback to use plain record when curses
is unavailable (e.g. python compiled without curses support).
Bryan O'Sullivan <bos@serpentine.com> [Sun, 27 Dec 2015 23:55:54 +0900] rev 27527
histedit: only use pickle if not using the modern save format
This avoids a case where PyPy's cPickle module throws a more confusing
error than CPython's.
Bryan O'Sullivan <bos@serpentine.com> [Sun, 27 Dec 2015 23:55:54 +0900] rev 27526
perf: close transaction in perffncachewrite
This fixes a bug, and brings CPython behaviour on this test into
line with PyPy.
Bryan O'Sullivan <bos@serpentine.com> [Sun, 27 Dec 2015 23:55:54 +0900] rev 27525
hbisect: use tryreadlines to load state
This closes the file handle after reading, which stops PyPy from
leaking open file handles and thus failing test-bisect3.t.
Bryan O'Sullivan <bos@serpentine.com> [Sun, 27 Dec 2015 23:55:54 +0900] rev 27524
eol: make output stable
This eliminates a divergence in behaviour between PyPy and Python.
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 23 Dec 2015 12:32:08 -0800] rev 27523
exchange: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 23 Dec 2015 12:30:14 -0800] rev 27522
localrepo: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Dec 2015 21:52:58 -0800] rev 27521
httpconnection: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 23 Dec 2015 12:27:24 -0800] rev 27520
import-checker: force 'logging' to stdlib module
Not sure why this isn't getting picked up. Perhaps we're not handling
stdlib paths that have sub-modules? Something to investigate for another
day...
Yuya Nishihara <yuya@tcha.org> [Wed, 23 Dec 2015 22:48:48 +0900] rev 27519
test-install: embed wix namespace for Python 2.6 compatibility
According to doc, the syntax is "{uri}tag".
https://docs.python.org/2.7/library/xml.etree.elementtree.html#parsing-xml-with-namespaces
timeless <timeless@mozdev.org> [Wed, 23 Dec 2015 17:54:13 +0000] rev 27518
fileset: add hint for list error to use or
timeless <timeless@mozdev.org> [Wed, 23 Dec 2015 17:54:03 +0000] rev 27517
revset: add hint for list error to use or
timeless <timeless@mozdev.org> [Wed, 23 Dec 2015 17:39:32 +0000] rev 27516
error: make ParseError inherit from HintException
timeless <timeless@mozdev.org> [Wed, 23 Dec 2015 17:38:24 +0000] rev 27515
error: refactor OutOfBandError to inherit from HintException
timeless <timeless@mozdev.org> [Tue, 22 Dec 2015 20:10:22 +0000] rev 27514
phases: mention how to make secret commits in help
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 23 Dec 2015 22:28:52 +0900] rev 27513
mq: use fallback patch name if no alpha-numeric in summary line (
issue5025)
Before this patch, "hg qimport -r REV" fails, if the summary line of
description of REV doesn't contain any alpha-numeric bytes.
In this case, all bytes in the summary line 'title' are dropped from
'namebase' by the code path below.
namebase = re.sub('[\s\W_]+', '_', title.lower()).strip('_')
'makepatchname()' immediately returns this empty string as valid patch
name, because patch name conflicting against empty string never
exists.
Then, "hg qimport -r REV" is aborted at creation of patch file with
empty filename.
This situation isn't so rare. For example, ordinary texts in Japanese
often consist of non alpha-numeric bytes in UTF-8.
This patch makes 'makepatchname()' use fallback patch name if the
summary line of imported revision doesn't contain any alpha-numeric
bytes.
Bryan O'Sullivan <bos@serpentine.com> [Tue, 22 Dec 2015 21:38:06 -0800] rev 27512
osutil: c_ssize_t is only available in Python >= 2.7
Bryan O'Sullivan <bos@serpentine.com> [Tue, 22 Dec 2015 21:38:06 -0800] rev 27511
check-seclevel: pass a ui to the extension loader
Without this, if an import error occurs (as with pypy), the attempt to
report it fails since ui is None.
Bryan O'Sullivan <bos@serpentine.com> [Tue, 22 Dec 2015 21:38:05 -0800] rev 27510
check-seclevel: add a --debug option
This will make it possible to get semi-meaningful tracebacks if an import
error occurs.
Why care? Trying to run this script under pypy currently fails, but the
true error is obscured.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 23 Nov 2015 12:14:01 -0500] rev 27509
test-run-tests: glob away a --debug run difference on Windows
This internal test is piped through 'grep -v pwd' to eliminate the pwd alias set
when running with MSYS. Unfortunately, the '.' from the successful run of the
prior internal test precedes the pwd alias for the next test on the same line,
so grep filters out '.' too, except for the final test.
It also looks like there may be a bug with --debug: the output of the internal
test that had this diff says 2 ran, 0 failed (one test being test-failure.t),
but if --debug is omitted from the internal test, then it says 2 ran, 1 failed.
With this longstanding issue fixed, the test suite finally runs cleanly on
Windows (except subrepo merge documented in issue 4988), with 88 skips. \o/
Matt Harbison <matt_harbison@yahoo.com> [Tue, 22 Dec 2015 21:47:40 -0500] rev 27508
import-checker: force 'ctype.util' to stdlib module
Not having this caused warnings on Windows:
mercurial/pure/osutil.py:12: stdlib import follows local import: os
mercurial/pure/osutil.py:13: stdlib import follows local import: socket
mercurial/pure/osutil.py:14: stdlib import follows local import: stat
mercurial/pure/osutil.py:15: stdlib import follows local import: sys
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 22 Dec 2015 16:28:28 -0800] rev 27507
keepalive: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Dec 2015 21:51:31 -0800] rev 27506
context: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Dec 2015 21:44:15 -0800] rev 27505
lsprofcalltree: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Dec 2015 21:42:14 -0800] rev 27504
byterange: use absolute_import
There were a lot of imports scattered around this file. They have been
consolidated at the top of the file where they belong.
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Dec 2015 21:38:53 -0800] rev 27503
dirstate: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Dec 2015 21:35:46 -0800] rev 27502
manifest: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Dec 2015 21:32:58 -0800] rev 27501
pvec: use absolute_import
Bryan O'Sullivan <bos@serpentine.com> [Tue, 22 Dec 2015 15:25:40 -0800] rev 27500
ui: remove unreachable code
timeless <timeless@mozdev.org> [Tue, 22 Dec 2015 10:58:47 +0000] rev 27499
mercurial.spec: remove execute bit
timeless <timeless@mozdev.org> [Tue, 22 Dec 2015 11:05:05 +0000] rev 27498
tests: add execute bit and fix shbang line
timeless <timeless@mozdev.org> [Tue, 22 Dec 2015 11:03:33 +0000] rev 27497
i18n: add execute bit to check-translation.py
timeless <timeless@mozdev.org> [Tue, 22 Dec 2015 07:59:14 +0000] rev 27496
doc: add execute bit and fix shbang line for gendoc.py
timeless <timeless@mozdev.org> [Tue, 22 Dec 2015 07:58:44 +0000] rev 27495
contrib: add execute bit for fixpax.py
timeless <timeless@mozdev.org> [Tue, 22 Dec 2015 07:58:21 +0000] rev 27494
contrib: add execute bit for check-py3-compat.py
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Dec 2015 19:56:23 -0800] rev 27493
perf: make start revision configurable for perfrevlog
This will help isolate performance characteristics of delta chains.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Dec 2015 19:45:55 -0800] rev 27492
perf: use standard arguments for perfrevlog
We have a convention of using -c|-m|FILE elsewhere for reading from
revlogs. Use it for `hg perfrevlog`.
While I was here, I also added a docstring to document what this
command does, as "perfrevlog" is ambiguous.
Jun Wu <quark@fb.com> [Fri, 18 Dec 2015 09:47:21 +0000] rev 27491
test-extension: do not depend on demandimport (
issue5012)
When demandimport is disabled, the test will fail because extroot/foo.py uses
import outside PYTHONPATH. This is bad since we have a PyPy migration plan and
it does not support demandimport. Fix by setting PYTHONPATH.
timeless <timeless@mozdev.org> [Tue, 22 Dec 2015 06:03:00 +0000] rev 27490
commands: split notes into note containers
timeless <timeless@mozdev.org> [Tue, 22 Dec 2015 06:02:01 +0000] rev 27489
remove: quote --force in never deletes note
Split Note into a note container
timeless <timeless@mozdev.org> [Tue, 22 Dec 2015 06:03:10 +0000] rev 27488
import: reword no hunks partial note
Split Note into a note container
timeless <timeless@mozdev.org> [Tue, 22 Dec 2015 05:46:23 +0000] rev 27487
merge: reword help to use See help resolve
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Dec 2015 21:31:57 -0800] rev 27486
py3compat: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Dec 2015 21:33:52 -0800] rev 27485
patch: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Dec 2015 21:26:14 -0800] rev 27484
mdiff: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Dec 2015 21:24:49 -0800] rev 27483
scmposix: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Dec 2015 21:23:43 -0800] rev 27482
scmutil: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Dec 2015 21:21:09 -0800] rev 27481
scmwindows: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Dec 2015 21:19:57 -0800] rev 27480
store: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 21 Dec 2015 21:33:27 -0800] rev 27479
help: use absolute_import
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Dec 2015 20:29:32 -0500] rev 27478
test-commit-interactive: updates for the no-execbit case
This goes with
c84a07530040 and
14b184263846.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Dec 2015 20:18:06 -0500] rev 27477
test-fileset: conditionalize output with symlink
timeless <timeless@mozdev.org> [Tue, 22 Dec 2015 02:24:16 +0000] rev 27476
commands: the first word of each note should be capital or `hg`
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Dec 2015 16:00:27 -0800] rev 27475
revlog: avoid string slice when decompressing u* chunks
Revlog chunks can be stored uncompressed. If the first byte of the
raw data is \0, we store the data as is. Else we prefix it with 'u'.
Before, we performed a string slice to strip out the 'u' prefix.
With this patch, we use a buffer to avoid an extra memory copy and
associated garbage collection overhead.
I was unable to verify any performance impact of this patch. For both
mozilla-central and the hg repos, the number of manifest revisions
with 'u' prefixes is very small - under 1%. So this change likely
isn't called enough to have an impact on manifest reading. However,
the reasoning behind this change is solid, so it should be safe.
Yuya Nishihara <yuya@tcha.org> [Thu, 17 Dec 2015 23:53:09 +0900] rev 27474
osutil: implement pure version of recvfds() for PyPy
This is less portable than the C version, but PyPy can't load CPython
extensions. So for now, this will be used on PyPy.
I've tested it on Linux amd64 and Mac OS X.
Yuya Nishihara <yuya@tcha.org> [Thu, 17 Dec 2015 23:41:46 +0900] rev 27473
osutil: implement recvmsg() of SCM_RIGHTS for chg command server
It will be used to attach client's stdio files to a background chg command
server.
The socket module of Python 2.x doesn't provide recvmsg(). This could be
implemented by using ctypes, but it would be less portable than the C version
because the handling of socket ancillary data heavily depends on preprocessor.
Also, some length fields are wrongly typed in the Linux kernel.
Matt Mackall <mpm@selenic.com> [Mon, 21 Dec 2015 14:52:18 -0600] rev 27472
cleanup: back out performance hacks amended into previous commit
timeless <timeless@mozdev.org> [Fri, 18 Dec 2015 06:33:48 +0000] rev 27471
commands: consistently indent notes 3 spaces
most notes have 3 spaces for indentation, these had 2...
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Dec 2015 18:38:21 -0800] rev 27470
perf: add perfrevlogrevision
As part of investigating performance improvements to revlog reading,
I needed a mechanism to measure every part of revlog reading so I knew
where time was spent and how effective optimizations were.
This patch implements a perf command for benchmarking the various
stages of reading a single revlog revision.
When executed against a manifest revision at the end of a 30,000+
long delta chain in mozilla-central, the command demonstrates that
~80% of time is spent in zlib decompression.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Dec 2015 19:02:02 -0800] rev 27469
commands: use revlog._deltachain in debugdeltachain
We have a nice API now. Use it.
This does mean we introduce an extra index lookup for each revision.
Considering this is a debug command, the overhead should be acceptable.
We could add the chain size to revlog._deltachain(). However, that
feels like avoidable overhead.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Dec 2015 18:56:05 -0800] rev 27468
revlog: refactor delta chain computation into own function
This code is already written in multiple locations.
While this code needs to be fast and extracting it to its own function
adds overhead, code paths reading delta chains typically read,
decompress, and do binary patching on revlog data from the delta chain.
This other work (especially zlib decompression) almost certainly
accounts for a lot more time than the overhead of introducing a Python
function call. So I'm not worried about the performance impact of this
change.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Dec 2015 17:57:44 -0800] rev 27467
perf: call clearcaches() in perfmanifest
The old code only partially cleared the caches. Now that we have a
comprehensive method for wiping all caches, let's call it.
This appears to introduce a marginal regression in `hg perfmanifest`
on mozilla-central. This is good because the new result is more
accurate since caches aren't being used.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Dec 2015 19:31:46 -0800] rev 27466
manifest: implement clearcaches()
The manifest implements its own caches in addition to revlog's. Extend
the base clearcaches() to wipe these as well.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 20 Dec 2015 17:48:20 -0800] rev 27465
revlog: make clearcaches() more effective
clearcaches() was added several years ago in
e8d37b78acfb as part
of implementing a perf command. Since revlog instances have many caches
and since the spirit of this mostly unused method is to facilitate
performance testing, I think it's appropriate for all the revlog's
caches to get cleared when it is called.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 21 Dec 2015 22:31:16 +0900] rev 27464
fileset: detect unintentional existing() invocation at runtime
A fileset predicate can invoke 'matchctx.existing()' successfully,
even if it isn't marked as "existing caller". It is aborted only in
some corner cases: e.g. there were one deleted file in the working
directory (see
8a0513bf030a for detail).
This patch makes 'matchctx.existing()' invocation abort if not
'_existingenabled', which is true only while "existing caller"
running.
After this changes, non-"existing caller" predicate function is
aborted immediately, whenever it invokes 'matchctx.existing()'. This
prevent developer from forgetting to mark a predicate as "existing
caller".
BTW, unintentional 'matchctx.status()' invocation can be detected
easily without any additional trick like this patch, because it
returns 'None' if a predicate isn't marked as "status caller", and
referring field (e.g. '.modified') of it is always aborted.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 21 Dec 2015 22:31:16 +0900] rev 27463
fileset: use set instead of list to mark predicates for efficiency (API)
This reduces cost of examining whether given predicate calls
'matchctx.status()' or 'matchctx.existing()' in 'getfileset()' at
runtime.
This kind of examination is used also in subsequent patch, which
detects unintentional 'matchctx.existing()' invocation per each
predicate evaluation.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 21 Dec 2015 22:31:16 +0900] rev 27462
fileset: use decorator to mark a predicate as "existing caller"
This can localize changes for adding (or removing) an "existing
caller" predicate function in source code.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 21 Dec 2015 22:31:16 +0900] rev 27461
fileset: use decorator to mark a predicate as "status caller"
Before this patch, predicates calling 'matchctx.status()' are listed
up by immediate list value in 'getfileset()'.
This prevents 3rd party extensions from adding specific predicate
calling 'matchctx.status()'.
This uses decorator to mark a predicate as "status caller".
This can also localize changes for adding (or removing) a "status
caller" predicate function in source code.