Boris Feld <boris.feld@octobus.net> [Wed, 02 Jan 2019 10:29:36 +0100] rev 41094
vfs: handle _auditpath in proxyvfs
Just forward the call to the underlying vfs.
Boris Feld <boris.feld@octobus.net> [Wed, 02 Jan 2019 10:29:12 +0100] rev 41093
vfs: fix proxyvfs inheritance
The proxyvfs class is designed to overwrite some of the vfs logic. Yet, it did
not use normal class inheritance. This is becoming an issue as `abstractvfs`
method could take precedence over their `proxyvfs` version.
We fix the inheritance chain to be as expected.
Boris Feld <boris.feld@octobus.net> [Wed, 26 Dec 2018 13:44:37 +0100] rev 41092
vfs: also audit rename
Renaming through the vfs is not used in many places, and none of them seems to
be a security risk.
However, it is still worthwhile to run the auditing on rename file to perform
developer-warning level checks.
Boris Feld <boris.feld@octobus.net> [Wed, 26 Dec 2018 13:44:23 +0100] rev 41091
vfs: add a `_auditpath` to abstract vfs
We are about to make `rename` audit path. Since rename lives in the
`abstractvfs` layer, we need it to be aware of auditing to some extent.
The default implementation is no-op because multiple existing vfs are not using
auditing at all right now (eg: fncachevfs).
Boris Feld <boris.feld@octobus.net> [Sun, 02 Jul 2017 04:51:03 +0200] rev 41090
vfs: makes all audited path relative
Only auditing relative path helps the vfs warning logic.
Boris Feld <boris.feld@octobus.net> [Fri, 21 Dec 2018 13:17:58 +0100] rev 41089
debugupgraderepo: add a --no-backup mode
The process has been around for a while and is pretty safe now. Having an
automated way to clean up the old data is useful when running many different
conversion to compare delta algorithm.
Boris Feld <boris.feld@octobus.net> [Fri, 13 Jul 2018 03:05:30 +0200] rev 41088
upgrade: add '-' in optimization name
The older name `redeltaall` was hard to type and read. The newer form should
be more user-friendly.
We keep backward compatibility with the old form (at least for a while).
Having to use different form depending on the version is very impractical and
error prone.
Boris Feld <boris.feld@octobus.net> [Fri, 21 Dec 2018 05:27:30 +0100] rev 41087
revlog: add test case for _findsnapshots
Testing the method directly is more robust.
Boris Feld <boris.feld@octobus.net> [Fri, 21 Dec 2018 05:27:38 +0100] rev 41086
revlog: use the native implementation of issnapshot
In some sparserevlog case where a lot of the history has to be searched for a
snapshot, the cost of issnashot cost becomes significant. The computation done
by the method is fairly low level, a native implementation provide a very
significant speedup.
example affected manifest write
before: 0.490375s
after: 0.114989s (-76%)
Boris Feld <boris.feld@octobus.net> [Mon, 17 Dec 2018 10:57:13 +0100] rev 41085
revlog: add a native implementation of issnapshot
This will be used in the next changesets
Boris Feld <boris.feld@octobus.net> [Mon, 17 Dec 2018 10:51:36 +0100] rev 41084
revlog: more efficient implementation for issnapshot
We avoid multiple method calls and tuple creation, this provides a significant
speedup in some case:
example affected manifest write
before: 0.815520s
after: 0.487767s (-40%)
Boris Feld <boris.feld@octobus.net> [Sun, 30 Dec 2018 16:14:42 +0100] rev 41083
revlog: clarify the non sparse-revlog case in `issnapshot`
If we are not using sparse-revlog, there is only one type of snapshot, the full
one.
Matt Harbison <matt_harbison@yahoo.com> [Sun, 30 Dec 2018 22:46:54 -0500] rev 41082
exthelper: switch to using the registrar merging method
Matt Harbison <matt_harbison@yahoo.com> [Sun, 30 Dec 2018 21:52:26 -0500] rev 41081
registrar: add a method to merge registrar instances
This provides sanity checking beyond simply merging the underlying dictionaries.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 29 Dec 2018 01:51:02 -0500] rev 41080
phabricator: ensure that the return of urlopener.open() is closed
No problem observed, just an oversight noticed while reading documentation.
Boris Feld <boris.feld@octobus.net> [Thu, 20 Dec 2018 09:59:16 +0100] rev 41079
revlog: fix pure python slicing test when chain contains nullrev
The revlog mock used in the test was not behaving the same as its C counterpart.
Yuya Nishihara <yuya@tcha.org> [Sun, 30 Dec 2018 17:31:57 +0900] rev 41078
merge with stable
Kyle Lippincott <spectral@google.com> [Thu, 27 Dec 2018 15:19:46 -0800] rev 41077
remotefilelog: fix bug in maybesparsematch returning alwaysmatcher
The description of the method says that it should return None if sparse is not
used in this repository; since sparse.matcher() returns alwaysmatcher if sparse
is not enabled, I'm using that as the signal to return None here to preserve the
previous behavior.
Differential Revision: https://phab.mercurial-scm.org/D5487
Kyle Lippincott <spectral@google.com> [Fri, 28 Dec 2018 12:51:47 -0800] rev 41076
procutil: correct spelling of uninterruptable -> uninterruptible
Differential Revision: https://phab.mercurial-scm.org/D5488
Matt Harbison <matt_harbison@yahoo.com> [Fri, 28 Dec 2018 18:14:10 -0500] rev 41075
help: show advanced, experimental and deprecated extensions with --verbose
I noticed that phabricator and absorb weren't showing up, no matter what.
There's a related problem where commands for these extensions *do* show up
without --verbose. I'm not sure what the point of hiding the extensions, but
not the commands is.
Matt Harbison <matt_harbison@yahoo.com> [Fri, 28 Dec 2018 17:45:27 -0500] rev 41074
help: remove a duplicate category name entry for TOPIC_CATEGORY_NONE
Matt Harbison <matt_harbison@yahoo.com> [Fri, 28 Dec 2018 17:33:13 -0500] rev 41073
phabricator: assign commands to help categories
`phabsend` and `phabupdate` seem pretty close to `email`. `phabread` is a
little less close, but can be trivially used to actually import patches.
Matt Harbison <matt_harbison@yahoo.com> [Fri, 28 Dec 2018 00:53:58 -0500] rev 41072
largefiles: eliminate an unnecessary import of configitems
Thanks to Yuya for pointing this out.
Matt Harbison <matt_harbison@yahoo.com> [Fri, 28 Dec 2018 00:51:02 -0500] rev 41071
exthelper: add some examples for using registrar aliases
Maybe it's my general lack of python knowledge, but how to use these would be
way too obscure for me otherwise.