Joerg Sonnenberger <joerg@bec.de> [Fri, 06 Apr 2018 21:50:01 +0200] rev 37411
wireproto: turn client capabilities into sets, sorted on the wire
Differential Revision: https://phab.mercurial-scm.org/D3169
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 Apr 2018 13:43:52 -0700] rev 37410
verify: drop "revlog" from warning message
Not all stores may be backed by revlogs. Switch to a more generic
error message.
Differential Revision: https://phab.mercurial-scm.org/D3094
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 Apr 2018 10:16:08 -0700] rev 37409
store: make file filtering during walk configurable
Previously, the walking mechanism assumed the use of revlogs for
storage.
Making the file filter configurable will enable custom stores
to override _walk() so it recognizes additional files.
Differential Revision: https://phab.mercurial-scm.org/D3093
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 Apr 2018 09:31:19 -0700] rev 37408
simplestore: shore up lookup errors
When revisions or nodes can't be resolved, we're expected to raise
an error.LookupError. When I ported code from revlog.py, I failed
to realize that "LookupError" in that module is aliased to
error.LookupError. I thought we were using the builtin LookupError
instead.
This commit switches us to error.LookupError. It also fixes
rev() to raise error.LookupError instead of KeyError.
Differential Revision: https://phab.mercurial-scm.org/D3092
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 Apr 2018 09:57:21 -0700] rev 37407
tests: extract dumprevlog tests to own file
And mark the test as requiring the revlog store.
Differential Revision: https://phab.mercurial-scm.org/D3091
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 Apr 2018 09:21:11 -0700] rev 37406
tests: skip test-censor.t when using simple store
Censor assumes the use of revlogs.
Proper censor support for non-revlog storage will require a better
abstraction in the storage layer to remove data. Let's skip the
censor tests until we have something in place.
Differential Revision: https://phab.mercurial-scm.org/D3090
Yuya Nishihara <yuya@tcha.org> [Mon, 02 Apr 2018 21:54:12 +0900] rev 37405
templater: deduplicate iterator of overlay mappings
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Mar 2018 21:01:23 +0900] rev 37404
templater: complain about invalid application of '%' operator (BC)
Before, '{x % y % z ...}' was silently evaluated as '{x % y}'. We no longer
need this hack since the web template bugs was fixed by earlier patches.
At this point, the error message may contain '<generator *>', which will
be fixed later.
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Mar 2018 21:18:57 +0900] rev 37403
hgweb: fix type of {nav} keyword when linerange filter is active
Spotted by making '%' operator check the operand type more strictly. Before,
"{nav}" would be evaluated to a lazy "" (empty string) and {"" % x} would
yield one empty string.
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Mar 2018 21:46:20 +0900] rev 37402
hgweb: fix {diff} expansion in JSON template
The same sort of bug as the previous patch. In this case, I decided to fix
the JSON template since we aren't ready to fix the {diff} keyword without BC.
I'll rework it later.
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Mar 2018 21:35:43 +0900] rev 37401
hgweb: fix summary {tags} and {shortlog} to not forcibly expand template
The same sort of bug as the previous patch. In this case, JSON template was
wrong.
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Mar 2018 20:51:39 +0900] rev 37400
hgweb: fix search {entries} to not return results of template expansion
"{entries%changelogentry}" in raw/search.tmpl was utterly wrong because
"{entries}" here was a generator yielding results of template expansion.
That's why we have a weird hack in runmap(), which I'm going to get rid of.
https://www.mercurial-scm.org/repo/hg/file/4.5.2/mercurial/templater.py#l469
We have two choices:
a) drop "%changelogentry" from raw/search.tmpl
b) fix "{entries}" to yield mappings
I take (b) because that's what the other log-like "{entries}" do. The
"entries" keyword is wrapped by mappinggenerator so "{entries}" without
"%searchentry" still works.
Yuya Nishihara <yuya@tcha.org> [Sat, 17 Mar 2018 22:47:02 +0900] rev 37399
templater: add class representing a nested mappings
The mappinggenerator class is necessary to fix hgweb bugs without BC. The
mappinglist is for nested formatter items. They are similar, so factored
out the base class. The mappinglist could be implemented by using the
mappinggenerator, but we'll probably need a direct access to the raw list,
so they are implemented as separate classes.
Note that tovalue() isn't conforming to the spec yet in that it may return
a list of dicts containing unprintable resources. This problem will be
fixed later.
Tests will be added by subsequent patches.
Yuya Nishihara <yuya@tcha.org> [Sat, 17 Mar 2018 22:56:49 +0900] rev 37398
templater: add function that expands internal literal templates
This will be used when rendering nested formatter items with the default
template, e.g.
fm.nested('parents', tmpl='{rev}:{node|formatnode}', sep=' ')
^^^^^^^^^^^^^^^^^^^^^^^
the default item template
Martin von Zweigbergk <martinvonz@google.com> [Fri, 06 Apr 2018 11:28:26 -0700] rev 37397
bookmarks: use isrevsymbol() for detecting collision with existing symbol
Differential Revision: https://phab.mercurial-scm.org/D3167