Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 18:21:21 +0530] rev 38066
py3: make sure we pass str to date.strftime()
Differential Revision: https://phab.mercurial-scm.org/D3590
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 21:47:59 +0530] rev 38065
py3: use pycompat.bytestr() to convert str into bytes
the keys of opts are str here, so we have to convert it to bytes before passing
into error.Abort()
Differential Revision: https://phab.mercurial-scm.org/D3617
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 21:46:54 +0530] rev 38064
py3: fix kwargs handling in hgext/rebase.py
We add r'' prefixes to prevent the transformer adding b'' prefixes.
# skip-blame because just r'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D3616
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 20:18:28 +0900] rev 38063
hgweb: wrap {entries}* of tags with mappinggenerator
They were functions returning a generator of mappings. The laziness is
handled by the mappinggenerator class.
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 20:14:19 +0900] rev 38062
hgweb: wrap {fentries} and {dentries} of manifest with mappinggenerator
They were functions returning a generator of mappings.
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 20:11:20 +0900] rev 38061
hgweb: wrap {entries}* of changelog with mappinglist
They were lists of mappings.
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 00:24:09 +0900] rev 38060
hgweb: wrap {lines} of filerevision with mappinggenerator
No bare generator of mappings should be put in a template mapping.
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 00:21:52 +0900] rev 38059
hgweb: drop unused argument 'tmpl' from webutil.diffstat()
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 00:20:47 +0900] rev 38058
hgweb: use template context to render {diffstat}
This is a preferred way to process nested templates.
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 00:19:37 +0900] rev 38057
hgweb: wrap {diffstat} with mappedgenerator
This can't be a mappinggenerator since the associated templates are switched
per item.
We already have webutil.diffstatgen(). That's why the generator function is
named as _diffstattmplgen().
Augie Fackler <augie@google.com> [Fri, 18 May 2018 20:43:01 -0400] rev 38056
pathencode: improve error messages slightly
Both of these are conditions we should never hit, so we can afford to
be more verbose to make debugging less baffling.
Differential Revision: https://phab.mercurial-scm.org/D3589
Augie Fackler <augie@google.com> [Fri, 18 May 2018 20:42:31 -0400] rev 38055
pathencode: hashlib.sha1() takes bytes not str on Python 3
Differential Revision: https://phab.mercurial-scm.org/D3588
Augie Fackler <augie@google.com> [Fri, 18 May 2018 20:42:04 -0400] rev 38054
pathencode: fix importing hashlib on Python 3
I'm curious why PyImport_Import is returning NULL, but
PyImport_ImportModule bypasses some of the regular import path,
probably including demandimport, which I suspect is the issue here.
Differential Revision: https://phab.mercurial-scm.org/D3587
Augie Fackler <augie@google.com> [Fri, 18 May 2018 20:11:24 -0400] rev 38053
context: fix %-formatting on Python 3
changeid could be an int or a bytestr, so use our pycompat wrapper.
Differential Revision: https://phab.mercurial-scm.org/D3585
Augie Fackler <augie@google.com> [Fri, 18 May 2018 19:54:50 -0400] rev 38052
patch: fix import-time syntax error in test-check-module-imports.t
This is more correct, though we were getting lucky in practice with
our rewriter saving us.
# skip-blame just a b prefix
Differential Revision: https://phab.mercurial-scm.org/D3584
Augie Fackler <augie@google.com> [Fri, 18 May 2018 19:52:35 -0400] rev 38051
py3: whitelist two more passing tests observed by buildbot
Differential Revision: https://phab.mercurial-scm.org/D3583
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 00:23:36 +0530] rev 38050
py3: use stringutil.pprint() to format a list to print
Differential Revision: https://phab.mercurial-scm.org/D3582
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 00:21:59 +0530] rev 38049
py3: fix kwargs handling in qgurad in hgext/mq.py
# skip-blame because just r'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D3581
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 19 May 2018 00:19:56 +0530] rev 38048
py3: use .startswith() instead of bytes[0]
bytes[0] returns the ascii value of character at 0 index.
Differential Revision: https://phab.mercurial-scm.org/D3580
Kyle Lippincott <spectral@google.com> [Thu, 17 May 2018 23:11:24 -0700] rev 38047
crecord: fallback to text mode if diffs are too big for curses mode
crecord uses curses.newpad to create a region that we can then scroll around in
by moving the main 'screen' as a veiwport into the (probably larger than the
actual screen) pad. Internally, at least in ncurses, pads are implemented using
windows, which have their dimensions limited to a certain size. Depending on
compilation options for ncurses, this size might be pretty small: (signed)
short, or it might be larger ((signed) int).
crecord wants to have enough room to have all of the contents of the main area
of the chunkselector in the pad; this means that the full size with everything
expanded must be less than these (undocumented, afaict) limits.
It's not easy to write tests for this because the limits are platform- and
installation- dependent and undocumented / unqueryable, as far as I can tell.
Differential Revision: https://phab.mercurial-scm.org/D3577
Martin von Zweigbergk <martinvonz@google.com> [Thu, 17 May 2018 15:33:28 -0700] rev 38046
narrow: filter copies in core
Differential Revision: https://phab.mercurial-scm.org/D3576
Martin von Zweigbergk <martinvonz@google.com> [Thu, 17 May 2018 15:25:52 -0700] rev 38045
narrow: filter set of files to check for case-folding to core
Differential Revision: https://phab.mercurial-scm.org/D3575
Martin von Zweigbergk <martinvonz@google.com> [Thu, 17 May 2018 15:12:48 -0700] rev 38044
narrow: filter merge actions in core
Part of the ongoing effort to move narrow into core.
Differential Revision: https://phab.mercurial-scm.org/D3574
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 17 May 2018 12:23:38 -0700] rev 38043
hgweb: extract code for emitting multiple changelist records
changelistentry() exists so extensions can easily monkeypatch the
function to add additional metadata.
In at least one case at Mozilla, we have an extension doing this
where performance would greatly benefit if we were able to "batch
fetch" metadata for all revisions that will eventually have their
data set.
By extracting the logic for "obtain records for N revisions" into
a standalone function, we make it possible for a monkeypatched
function to more efficiently bulk fetch data for N revisions.
Differential Revision: https://phab.mercurial-scm.org/D3573
Matt Harbison <matt_harbison@yahoo.com> [Wed, 16 May 2018 22:44:27 -0400] rev 38042
phabricator: register config settings
I didn't bother registering the deprecated phabricator.auth.*, and I'm not sure
if the two flagged as 'developer config' should be moved to [devel] (or why
there's a distinction between `repophid` and `callsign`).
hindlemail <tom_hindle@sil.org> [Wed, 16 May 2018 14:11:41 -0600] rev 38041
filemerge: support specifying a python function to custom merge-tools
Eliminates the need to specify a python executable, which may not exist on
system. Additionally launching script inprocess aids portability on systems
that can't execute python via the shell.
Example usage "merge-tools.myTool.executable=python:c:\myTool.py:mergefn"
where myTool.py contains a function:
"def mergefn(ui, repo, args, **kwargs):"
where args is list of args passed to merge tool.
(by default, expanded: $local $base $other)
Invoking the specified python function was done by exposing and invoking
(hook._pythonhook -> hook.pythonhook)
Yuya Nishihara <yuya@tcha.org> [Thu, 24 May 2018 21:54:31 +0900] rev 38040
help: correct signature of separate() template function
Without the dots, it looked as if separate() would take a list of arguments.
Yuya Nishihara <yuya@tcha.org> [Fri, 18 May 2018 21:32:05 +0900] rev 38039
hgweb: do not try to replace signal handlers while locking
According to the issue 5889, mod_wsgi issues a warning on signal.signal()
call, and we wouldn't want to see it in error log. The problem addressed
by
d77c3b023393 could potentially occur in web session, but that would be
less likely than in user processes.