Maciej Fijalkowski <fijall@gmail.com> [Wed, 30 Mar 2016 21:54:26 +0200] rev 28713
tests: fix builtin module test on pypy
On pypy datetime and cProfile are modules written in Python, not in C.
For the purpose of this test, just list them explicitely as builtins,
which silences warnings about them being imported before stdlib modules.
Anton Shestakov <av6@dwimlabs.net> [Thu, 31 Mar 2016 15:37:21 +0800] rev 28712
hgweb: generate last change date for an empty atom-bookmarks feed (issue5022)
RFC 4287 states that atom feeds must have an <updated> element, so let's add
one even when repo doesn't have a single bookmark.
Anton Shestakov <av6@dwimlabs.net> [Thu, 31 Mar 2016 15:22:06 +0800] rev 28711
hgweb: sort bookmarks in revlog order of their nodes
Changes, branches and tags are already in revlog order on /summary, /branches
and /tags, let's now make bookmarks be sorted by the same principle. It's more
helpful to show more "recent" bookmarks on top. This will affect /bookmarks
page in all styles, including atom, rss and raw, and also /summary page.
Bookmarks are sorted using a (revision number, bookmark name) tuple.
Anton Shestakov <av6@dwimlabs.net> [Thu, 31 Mar 2016 14:23:27 +0800] rev 28710
hgweb: sort bookmarks early
Let's do the same thing that /tags page does. It gets sorted tags and then if
it needs the latest only, it just slices the first item from the list. Since
it's a slice and not a min(), it doesn't throw an exception if the list is
empty. This fixes HTTP 500 error from issue5022.
Anton Shestakov <av6@dwimlabs.net> [Thu, 31 Mar 2016 18:09:09 +0800] rev 28709
hgweb: add parents to json-log (issue5074)
Entries prepared in webutil.changelistentry() skip showing parents in the
trivial case when there's only one parent and it's the previous revision. This
doesn't work well for the json-log template, which is supposed to just dump raw
data in an easy-to-parse format, so let's provide all parents as another
keyword: allparents.
Using a lambda function here means that the performance of templates that don't
use allparents won't be affected (see 41957e50e109).
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 17:46:06 +0900] rev 28708
revset: make _parsealiasdecl() simply return the original parsed tree
It wasn't necessary to reconstruct the same tuple.
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 16:35:58 +0900] rev 28707
revset: inline isvalidfunc(), getfuncname() and getfuncargs()
See the previous commit for why. These functions are also trivial.
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 16:32:18 +0900] rev 28706
revset: inline isvalidsymbol() and getsymbol() into _parsealiasdecl()
Since I'm going to extract a common alias parser, I want to eliminate
dependencies to the revset parsing rules. These functions are trivial,
so we can go without them.
Yuya Nishihara <yuya@tcha.org> [Mon, 29 Feb 2016 16:23:09 +0900] rev 28705
revset: remove redundant checks for parsed tree of alias
If tree is a tuple, it must have at least one element. Also the length of node
tuple is guaranteed by the syntax elements. (e.g. 'func' must have 3 items.)
This change will help inlining these trivial functions in future patches.
timeless <timeless@mozdev.org> [Wed, 30 Mar 2016 08:15:37 +0000] rev 28704
py3: handle iter/iterkeys+iteritems python3 divergence in import-checker