See the test for usage example.
wraphybridvalue() takes a key/value pair because a hybrid dict passes a key
to its makemap() function. Since makemap() of showmanifest() doesn't need
a key, it's set to None.
This patch adds documentation for the config option. The config name does not
convey much and hence documentation was required.
Differential Revision: https://phab.mercurial-scm.org/D986
The eol extension may mangle the [eol] config section and that means chg is
unable to detect config file change (because it re-applies setconfig
changes).
This makes test-eol.t pass with chg.
Differential Revision: https://phab.mercurial-scm.org/D917
This password manager proxy is roughly the right-looking layer to
convert between strings and bytes. Many of these arguments can be
None, so we have a helper method to make the conversion preserve Nones
without exploding.
Differential Revision: https://phab.mercurial-scm.org/D886
These are all the httpserver and urllib.* aliases. They seem to make
more sense in the slightly-more-specific urllibcompat package than the
general-purpose pycompat.
Differential Revision: https://phab.mercurial-scm.org/D935
Doing a new file instead of pycompat because I'm starting to feel like
pycompat is getting a little enormous in terms of scope.
Differential Revision: https://phab.mercurial-scm.org/D890
This is minimal and non-controversial implementation of extdata() template
function. Originally extdata sources were exposed to the keyword namespace,
but I've changed it to a plain function for simplicity.
This is minimal and non-controversial implementation of extdata() revset.
Originally extdata sources were exposed to the symbol namespace, but I've
changed it to a plain function for simplicity.
This adds basic support for extdata, a way to add external data
sources for revsets and templates. An extdata data source is simply a
list of lines of the form:
<revision identifier>[<space><freeform text>]\n
An extdata source is configured thusly:
[extdata]
name = <a url or path>
urls of the form shell: are launch shell commands to generate data.
This patch is slightly modified by Yuya Nishihara as follows:
- fix typo
- remove unused function
- remove future expansion point for parameter (which can be added later
as the extdata revset/template are experimental)
You can see the original patch at
https://www.mercurial-scm.org/pipermail/mercurial-devel/2016-September/088426.html
The default value is compiled into the generated type. This means
that default values are shared between instances. For immutable types
like bool, str, int, and tuple, this is fine. But for mutable types
like list and dict, we need to use attr.Factory() to instantiate a
new instance of the default for each object.
Differential Revision: https://phab.mercurial-scm.org/D901
This seems to be the prevailing style, even though it is a bit more
verbose for very simple switch statements.
Differential Revision: https://phab.mercurial-scm.org/D909
We mostly abide by this style.
In one case, a blank line was inserted to prevent a local
`#include "file"` from coming before a `#include <file>`.
Differential Revision: https://phab.mercurial-scm.org/D908