Yuya Nishihara <yuya@tcha.org> [Tue, 03 Apr 2018 23:32:16 +0900] rev 37952
hgweb: wrap {files} of changelist entries with mappedgenerator
This also switches the associated templates conditionally, which can't be
a mappinggenerator.
Yuya Nishihara <yuya@tcha.org> [Tue, 03 Apr 2018 23:31:11 +0900] rev 37951
hgweb: use template context to render {files} of changesetentry()
This is a preferred way to process nested templates.
Yuya Nishihara <yuya@tcha.org> [Tue, 03 Apr 2018 23:29:11 +0900] rev 37950
hgweb: wrap {files} of changesetentry() with mappedgenerator
This can't be easily adapted to mappinggenerator because the associated
templates are switched per item.
Yuya Nishihara <yuya@tcha.org> [Tue, 03 Apr 2018 23:25:32 +0900] rev 37949
hgweb: extract generator of {files} from changesetentry()
This will be wrapped with mappedgenerator.
Yuya Nishihara <yuya@tcha.org> [Sat, 16 Jan 2016 19:23:53 +0900] rev 37948
templatefilters: document the json filter
I don't know the exact reason why it was undocumented, but that would be
because unicode is difficult for humans. Since the json filter can now get
localstr back to UTF-8 as long as it is unprocessed (i.e. {desc|json} works,
but {desc|firstline|json} doesn't), it seems good enough to advertise the
json filter.
Yuya Nishihara <yuya@tcha.org> [Sun, 23 Apr 2017 13:15:30 +0900] rev 37947
encoding: introduce tagging type for non-lossy non-ASCII string
This fixes the weird behavior of toutf8b(), which would convert a local
string back to UTF-8 *only if* it was lossy in the system encoding.
Before
b7b26e54e37a "encoding: avoid localstr when a string can be encoded
losslessly (
issue2763)", all local strings were wrapped by the localstr
class. I think this would justify the round-trip behavior of toutf8b().
ASCII strings are special-cased, so the cost of wrapping with safelocalstr
is negligible.
(with mercurial repo)
$ export HGRCPATH=/dev/null HGPLAIN= HGENCODING=latin-1
$ hg log --time --config experimental.evolution=all > /dev/null
(original)
time: real 11.340 secs (user 11.290+0.000 sys 0.060+0.000)
time: real 11.390 secs (user 11.300+0.000 sys 0.080+0.000)
time: real 11.430 secs (user 11.360+0.000 sys 0.070+0.000)
(this patch)
time: real 11.200 secs (user 11.100+0.000 sys 0.100+0.000)
time: real 11.370 secs (user 11.300+0.000 sys 0.070+0.000)
time: real 11.190 secs (user 11.130+0.000 sys 0.060+0.000)
Yuya Nishihara <yuya@tcha.org> [Sun, 22 Apr 2018 11:38:53 +0900] rev 37946
encoding: fix toutf8b() to resurrect lossy characters even if "\xed" in it
If 's' is a localstr, 's._utf8' must be returned to get the original UTF-8
sequence back. Because of this, it was totally wrong to test if '"\xed" not
in s', which should be either '"\xed" not in s._utf8' or just omitted.
This patch moves the localstr handling to top as the validity of 's._utf8'
should be pre-checked by encoding.tolocal().
Yuya Nishihara <yuya@tcha.org> [Sun, 25 Mar 2018 16:47:33 +0900] rev 37945
sshserver: redirect stdin/stdout early and use duplicated streams
This is what we achieved with hook.redirect(True) plus ui.fout = ui.ferr.
The hook.redirect() function can't be completely removed yet since hgweb
still depends on it. I'm not sure if it is necessary for WSGI servers. CGI
needs it, but does WSGI communicate over stdin/stdout channels?
Yuya Nishihara <yuya@tcha.org> [Sun, 25 Mar 2018 16:35:24 +0900] rev 37944
sshserver: do setbinary() by caller (API)
In most cases, stdio should be set to binary mode by the dispatcher, so
the sshserver does not have to take care of that. The only exception was
hg-ssh, which is fixed by this patch.
.. api::
``sshserver()`` no longer sets stdin and stdout to binary mode.
Yuya Nishihara <yuya@tcha.org> [Sun, 25 Mar 2018 16:39:17 +0900] rev 37943
test-ssh: add some flush() to make output deterministic
We shouldn't rely on buffering mode/state of file handles.
Yuya Nishihara <yuya@tcha.org> [Thu, 10 May 2018 21:08:32 +0900] rev 37942
stringutil: flip the default of pprint() to bprefix=False
If we use pprint() as a drop-in replacement for repr(), bprefix=False is more
appropriate. Let's make it the default to remove bprefix=False noise.
Yuya Nishihara <yuya@tcha.org> [Thu, 10 May 2018 21:00:58 +0900] rev 37941
stringutil: make pprint() forward uninteresting object to b'%r'
We appear to start using pprint() as a replacement for repr(), so it's
probably safer to support any Python objects instead of complaining about
that.
Augie Fackler <augie@google.com> [Fri, 27 Apr 2018 13:46:54 -0400] rev 37940
tests: use stringutil.pprint instead of custom dumper in test-hgweb-auth.py
Differential Revision: https://phab.mercurial-scm.org/D3529
Augie Fackler <augie@google.com> [Fri, 27 Apr 2018 13:43:59 -0400] rev 37939
tests: port test-simplekeyvaluefile.py to Python 3
# skip-blame just b prefixes
Differential Revision: https://phab.mercurial-scm.org/D3528
Augie Fackler <augie@google.com> [Fri, 27 Apr 2018 13:39:45 -0400] rev 37938
tests: port test-extensions-wrapfunction to Python 3
Differential Revision: https://phab.mercurial-scm.org/D3527
Augie Fackler <augie@google.com> [Fri, 27 Apr 2018 13:15:51 -0400] rev 37937
tests: port test-ui-config to Python 3
Slight test output changes to make life easier.
Differential Revision: https://phab.mercurial-scm.org/D3526