merge with stable
run-tests: only check the common criteria once per test

--HG--
extra : rebase_source : 48f795d1ba7574c77df26bbc3e6862ed3c8ffe16
obsolete: clean up a couple of docstrings for correctness

--HG--
extra : rebase_source : 7c38c7634a880279a11b365f6cf15a814ae86685
paper: get rid of changelogtag template duplication
hgweb: remove trailing whitespace in mercurial.js
hgweb: show full date in rfc822 format in tooltips at shortlog page

The absolute date was not shown anywhere in the log view for users with
enabled JavaScript.
paper: remove unused occurence of changelogtag in views

This variably isn't passed to these views and it always renders to empty string
for this reason. Other themes don't have this issue.
hgweb: separate search itself and template generation

This will make it simpler to add other search modes.
hgweb: cleaner if conditions in changelog() function

This removes unneeded extra nesting level and extra variable, which makes
the code easier to understand.
proxy: allow wildcards in the no proxy list (issue1821)

--HG--
extra : rebase_source : c8c7c9d69d7449e9be876073919c108ba738840a
ui.config: fix bug in config alternatives from cc669e4fec95

--HG--
extra : rebase_source : 2ee469954b886e562804b59dee13f54289ff153b
basectx: add an empty class that will be used as a parent of all contexts

At the moment, there is no simple way to check if an object is a context
because there is no common parent class. If there were, we could use
'isinstance' everywhere. Simply having memctx inherit from workingctx or
changectx would allow the use of 'isinstance' but that could lead to some
confusing situations of reading the code since we have three distinct concepts
of a context:

- changectx represents a changeset *already* in the repo, and is therefore immutable
- workingctx represents changes on disk in the working directory
- memctx represents changes solely in memory which may or may not be on disk

Therefore, I propose refactoring context.py to have all three contexts inherit
from a parent class 'basectx'.

--HG--
extra : rebase_source : bbc2f53a34cdb880fd51adc8c4ab334099240073
basectx: return a copied context if changeid is already a basectx

This implements a copy constructor so that we can pass a basectx-derived object
in future refactorings.

--HG--
extra : rebase_source : 10b5505b4c9e0889dc6fcc826a37af8afda0ebf3
changectx: if passing a basectx then exit __init__ immediately

--HG--
extra : rebase_source : d42aa702d41fc526720c18a5a71599870501c2cf
basectx: move __str__ from changectx

--HG--
extra : rebase_source : 1bd7414eae6e417fa7c733660bd77f66e808cea0
basectx: move rev from changectx

--HG--
extra : rebase_source : 3e249ccafec59c485ab0d1dc3298d96a35d0f9ca
basectx: move node from changectx

--HG--
extra : rebase_source : 1c8c04fd7caa83133625538cc7378bfada51a3af
basectx: move hex from changectx

--HG--
extra : rebase_source : a6829c44fe8c44c76a53205eb8462996de4be06c
basectx: change _node to node() in hex

This allows a child class to overload the node() function and still share the
same code for hex().

--HG--
extra : rebase_source : 166f728700d146b45592aec767807b52b689f83f
basectx: move __int__ from changectx

--HG--
extra : rebase_source : 8a87b177bd667f489c8a3198d64d2061e976d4de