Augie Fackler <augie@google.com> [Tue, 17 Oct 2017 10:51:43 -0400] rev 34838
templater: use pycompat.sysbytes to bytes-ify some __name__ attrs
Spotted by yuya in review of
e87e62b7fc0b.
Differential Revision: https://phab.mercurial-scm.org/D1145
Augie Fackler <augie@google.com> [Mon, 16 Oct 2017 22:44:43 -0400] rev 34837
templatefilters: defend against evil unicode strs in json filter
We only want to do I/O in terms of bytes, so lets explode early
instead of recursing forever.
Differential Revision: https://phab.mercurial-scm.org/D1136
Boris Feld <boris.feld@octobus.net> [Wed, 20 Sep 2017 19:38:06 +0200] rev 34836
phase: use a binary phase part to push through bundle2 (BC)
The part we are using for pull is now used for push too. As we no longer use
pushkey, pushkey hooks are no longer triggered. This is an obvious backward
incompatible change. We could artificially trigger the pushkey hook within the
bundle2 part, but this seemed too hacky to me.
An option would be to disable by default this new mechanism for a couple of
versions to help people migrate to `txnclose-phase`. I took the liberal and
optimistic path to just turn it on by default directly.
.. bc::
Push no longer triggers a pushkey hook when updating phases. Use the new
`txnclose-phase` and `txnclose-phase` hooks instead.
(Applies when both server and client use version 4.4 or above).
Phil Cohen <phillco@fb.com> [Tue, 17 Oct 2017 12:41:24 -0700] rev 34835
arbitraryfilecontext: skip the cmp fast path if any side is a symlink
`filecmp` follows symlinks by default, which a `filectx.cmp()` call should not
be doing as it should only compare the requested entry. After this patch, only
the contexts' data are compared, which is the correct contract.
This is a corrected version of D1122.
Differential Revision: https://phab.mercurial-scm.org/D1165
Augie Fackler <augie@google.com> [Mon, 14 Sep 2015 14:17:27 -0400] rev 34834
test-clang-format: new test to verify that files stay clang-formatted
For now all .c and .h files are blacklisted. As they become
clang-formatted, we'll remove them from the blacklist,and then this
test will produce output if there are diffs.
Differential Revision: https://phab.mercurial-scm.org/D1133
Mark Thomas <mbthomas@fb.com> [Tue, 17 Oct 2017 08:11:13 -0700] rev 34833
context: audit paths before clearing unknown files and dirs
Fix regression introduced in D785.
In some circumstances, context.clearunknown can be called before the path is
audited. Audit the path before deleting any conflicting files.
Differential Revision: https://phab.mercurial-scm.org/D1157
Mark Thomas <mbthomas@fb.com> [Tue, 17 Oct 2017 08:07:43 -0700] rev 34832
tests: add test demonstrating regression in path audit
D785 regressed behavior in path auditing: files can be deleted if they have a
path that conflicts with a filename from a malicious remote or bundle.
This test demonstrates the problem - the file should not have been deleted.
Differential Revision: https://phab.mercurial-scm.org/D1156
Boris Feld <boris.feld@octobus.net> [Fri, 13 Oct 2017 23:00:31 +0200] rev 34831
configitems: move rebase config into core
The shelve extensions import and call rebase content without loading the
extension. This is problematic as the config items rebase uses are not
declared and the default value are not set, etc...
The shelve extension should be using core utilities only and the necessary bit
should be moved from rebase into core. In the meantime, I'm taking a small
step to get config registration completed with minimal overhead. The rebase
extension is shipped with core so registering its config option within core is
not a big issue.
This is the last step needed before we can install a warning that enforces all
config to be registered.
Boris Feld <boris.feld@octobus.net> [Sat, 14 Oct 2017 01:09:46 +0200] rev 34830
eol: ensure the eol extensions is loaded when hooks run
Similar to the change we did to the 'acl' extensions, we want to make sure the
config items are registered before we run the hooks.
Boris Feld <boris.feld@octobus.net> [Sat, 14 Oct 2017 01:16:03 +0200] rev 34829
acl: make sure the extensions is enabled when the acl-hooks run
The acl extension is usually setup through hooks and never directly activated.
This means the config item declared in the extension are not loaded.
We add the necessary logic to make sure the extensions are loaded before the hook
run.