Yuya Nishihara <yuya@tcha.org> [Sat, 24 Mar 2018 14:08:50 +0900] rev 37096
util: use error.Abort instead of local alias
Yuya Nishihara <yuya@tcha.org> [Sat, 24 Mar 2018 13:30:50 +0900] rev 37095
rcutil: directly call win32.executablepath()
Since it isn't supported on POSIX platform, we don't need to double the
compatibility layers.
Yuya Nishihara <yuya@tcha.org> [Sat, 24 Mar 2018 17:19:32 +0900] rev 37094
directaccess: do not abort by 'ff...' hash
Since the 'ff...' hash should never be hidden, we can just ignore it.
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 23 Mar 2018 11:20:13 -0700] rev 37093
hgweb: don't responsd to api requests unless feature is enabled
Per discussion at https://phab.mercurial-scm.org/D2834, new URLs
in hgweb can conflict with subrepos and virtual repos. This may prevent
access to repos in certain paths or having certain names.
Until we have a workaround for this, let's not serve requests for
"api/" URLs unless the feature is enabled.
Differential Revision: https://phab.mercurial-scm.org/D2936
Daniel Ploch <dploch@google.com> [Fri, 23 Mar 2018 11:20:49 -0700] rev 37092
fancyopts: prevent mutation of the default value in customopts
Differential Revision: https://phab.mercurial-scm.org/D2937
Daniel Ploch <dploch@google.com> [Thu, 22 Mar 2018 17:08:25 -0700] rev 37091
fancyopts: fix rendering of customopt defaults in help text
Differential Revision: https://phab.mercurial-scm.org/D2935
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 12 Mar 2018 18:38:26 +0530] rev 37090
remotenames: show remote bookmarks in `hg bookmarks`
This patch adds functionality to show list of remote bookmarks in `hg bookmarks`
command.
There is some indenting problem in the test output as the current bookmark
printing code in core can handle bookmark names of size 25 only gracefully.
The idea is taken from hgremotenames extension which has --remote and --all
flags to show remote bookmarks. However, this patch by defaults support showing
list of remote bookmarks if remotenames extension is enabled and remotebookmarks
are turned on.
Differential Revision: https://phab.mercurial-scm.org/D2808
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 11 Mar 2018 16:17:51 +0530] rev 37089
remotenames: add functionality to hoist remotebookmarks
This patch adds the functionality to hoist remotebookmarks to the top level
namespace. The peer of which bookmarks should be hoisted can be set using
`remotenames.hoistedpeer` config option. Only bookmarks can be hoisted. If a
hoisted name and local bookmark exists of the same name, the local bookmark
takes precedence.
While I was here, I documented the default values of two other remotenames
config options.
Differential Revision: https://phab.mercurial-scm.org/D2807
Kyle Lippincott <spectral@google.com> [Thu, 08 Mar 2018 11:44:03 -0800] rev 37088
copyfile: preserve stat info (mtime, etc.) when doing copies/renames
Differential Revision: https://phab.mercurial-scm.org/D2729
Matt Harbison <matt_harbison@yahoo.com> [Thu, 22 Mar 2018 22:58:31 -0400] rev 37087
merge: add 'isknown=True' to a dirstate.normalize() in _unknowndirschecker
Per the docstring for dirstate.normalize().
Matt Harbison <matt_harbison@yahoo.com> [Thu, 22 Mar 2018 22:56:29 -0400] rev 37086
merge: pconvert paths in _unknowndirschecker before dirstate-normalizing
This fixes the failure in test-pathconflicts-basic.t on Windows. The test was
passing in 'a\b', which was getting normalized to 'A\B', which isn't in
dirstate. (The filesystem path is all lowercase anyway.)
This isn't the only case of calling dirstate.normalize(), but other methods here
(util.finddirs()) seem to assume the input paths are already using '/'. I think
the backslash comes from wvfs.reljoin() (in this case), but could also come from
wvfs.walk(), so this is the only case that needs it.
Yuya Nishihara <yuya@tcha.org> [Thu, 22 Mar 2018 22:39:43 +0900] rev 37085
util: enable deprecation warning for stringutil proxy (API)
.. api::
Several generic string helper functions have been moved to utils.stringutil
module.
Yuya Nishihara <yuya@tcha.org> [Thu, 22 Mar 2018 21:56:20 +0900] rev 37084
stringutil: bulk-replace call sites to point to new module
This might conflict with other patches floating around, sorry.
Yuya Nishihara <yuya@tcha.org> [Thu, 22 Mar 2018 21:19:31 +0900] rev 37083
stringutil: move generic string helpers to new module
Per https://phab.mercurial-scm.org/D2903#46738
URL and file paths functions are left since they are big enough to make
separate modules.
Yuya Nishihara <yuya@tcha.org> [Thu, 22 Mar 2018 21:32:19 +0900] rev 37082
util: remove unused private constant '_hextochr'
The only user, _urlunquote(), was removed by
81d38478fced.
Yuya Nishihara <yuya@tcha.org> [Thu, 22 Mar 2018 21:20:47 +0900] rev 37081
util: mark internal constants of escapedata() as private
Yuya Nishihara <yuya@tcha.org> [Thu, 22 Mar 2018 21:14:12 +0900] rev 37080
util: adjust indent level in wrap()
Yuya Nishihara <yuya@tcha.org> [Thu, 22 Mar 2018 21:13:31 +0900] rev 37079
util: mark MBTextWrapper as private
Makes porting slightly easier.
Yuya Nishihara <yuya@tcha.org> [Thu, 22 Mar 2018 21:10:42 +0900] rev 37078
util: add helper to define proxy functions to utils.*
Kyle Lippincott <spectral@google.com> [Wed, 21 Mar 2018 12:36:29 -0700] rev 37077
filemerge: make the 'local' path match the format that 'base' and 'other' use
If we pass a separate '$output' arg to the merge tool, we produce four files:
local, base, other, and output. In this situation, 'output' will be the
original filename, 'base' and 'other' are temporary files, and previously
'local' would be the backup file (so if 'output' was foo.txt, 'local' would be
foo.txt.orig).
This change makes it so that 'local' follows the same pattern as 'base' and
'other' - it will be a temporary file either in the
`experimental.mergetempdirprefix`-controlled directory with a name like
foo~local.txt, or in the normal system-wide temp dir with a name like
foo~local.RaNd0m.txt.
For the cases where the merge tool does not use an '$output' arg, 'local' is
still the destination filename, and 'base' and 'other' are unchanged.
The hope is that this is much easier for people to reason about; rather than
having a tool like Meld pop up with three panes, one of them with the filename
"foo.txt.orig", one with the filename "foo.txt", and one with
"foo~other.StuFf2.txt", we can (when the merge temp dir stuff is enabled) make
it show up as "foo~local.txt", "foo.txt" and "foo~other.txt", respectively.
This also opens the door to future customization, such as getting the
operation-provided labels and a hash prefix into the filenames (so we see
something like "foo~dest.abc123", "foo.txt", and "foo~src.d4e5f6").
Differential Revision: https://phab.mercurial-scm.org/D2889
Matt Harbison <matt_harbison@yahoo.com> [Wed, 21 Mar 2018 22:36:26 -0400] rev 37076
test-strip-narrow: adjust bundle removal for Windows test stability
MSYS was mangling $TESTTMP to C:\\Users\\...\\test-narrow-strip.t-flat/, which
caused `rm` to fail. The -f was suppressing -ENOENT, so the only clue something
was wrong was when 2 bundles were applied via `hg unbundle` on line 91, instead
of just 1. This changed the text output of `hg unbundle`.
The first `rm` wasn't causing an issue, but is changed for consistency with the
rest of the file.
Yuya Nishihara <yuya@tcha.org> [Thu, 15 Mar 2018 21:38:57 +0900] rev 37075
templater: drop symbols which should be overridden by new 'ctx' (
issue5612)
This problem is caused by impedance mismatch between the templater and the
formatter interface, which is that the template keywords are generally
evaluated dynamically, but the formatter puts static values into a template
mapping.
This patch avoids the problem by removing conflicting values from a mapping
dict when a 'ctx' is switched.
Yuya Nishihara <yuya@tcha.org> [Thu, 15 Mar 2018 21:22:52 +0900] rev 37074
templater: factor out function to create mapping dict for nested evaluation
overlaymap() is the hook point to drop mapping items conflicting with the
default keywords which have to be re-evaluated with new 'ctx' resource.
Yuya Nishihara <yuya@tcha.org> [Thu, 15 Mar 2018 20:43:39 +0900] rev 37073
templater: introduce resourcemapper class
A couple more functions will be added later to work around nested mapping
bugs such as the issue 5612.
Yuya Nishihara <yuya@tcha.org> [Thu, 15 Mar 2018 20:27:38 +0900] rev 37072
log: do no expect templateresources() returning a dict
The resources dict will be replaced with new resource mapper object, which
won't implement __getitem__(key). Share the whole resources object with
_graphnodeformater() to make porting easier.
Yuya Nishihara <yuya@tcha.org> [Fri, 16 Mar 2018 23:11:55 +0900] rev 37071
templatekw: mark _showlist() as deprecated (API)
.. api::
``templatekw._showlist()`` is deprecated in favor of
``templateutil._showcompatlist()``, which takes ``context`` in place of
``templ``.
Yuya Nishihara <yuya@tcha.org> [Fri, 16 Mar 2018 23:09:21 +0900] rev 37070
templater: drop 'templ' from resources dict
Partially resolves cycle, templ -> context -> templ. This will make it easier
to replace the resources dict with new immutable resource mapper interface.
Yuya Nishihara <yuya@tcha.org> [Fri, 16 Mar 2018 23:01:51 +0900] rev 37069
templatekw: stop using _showlist() which is about to be deprecated
Use the new context-based API instead.
Yuya Nishihara <yuya@tcha.org> [Fri, 16 Mar 2018 22:47:15 +0900] rev 37068
templater: use template context to render old-style list template
Prepares for dropping the 'templ' resource.
This means old-style list templates are processed by the same engine class
as the one for the list node. I think that's fine since templates for the
same list should be tightly coupled, and I believe the extension point for
the engine classes isn't actually used.
Now templatekw._showlist() is a compatibility wrapper for _showcompatlist(),
and will be deprecated soon. The function is still marked as private since
I plan to change the interface to get rid of closures capturing context and
mapping.
Yuya Nishihara <yuya@tcha.org> [Fri, 16 Mar 2018 22:36:40 +0900] rev 37067
templater: add context.preload(t) to test if the specified template exists
I'm going to remove 'templ' from the resources dict because it is the only
resource that the caller can't provide. This also implies that putting
'templ' into the resources dict creates a reference cycle.
context.preload(t) will be used in place of templater.__contains__().