templatefilters: try round-trip utf-8 conversion by json filter (
issue4933)
As JSON string is known to be a unicode, we should try round-trip conversion
for localstr type. This patch tests localstr type explicitly because
encoding.fromlocal() may raise Abort for undecodable str, which is probably
not what we want. Maybe we can refactor json filter to use encoding module
more later.
Still "{desc|json}" can't round-trip because showdescription() modifies a
localstr object.
exchange: do not attempt clone bundle if local repo is non-empty (
issue4932)
test-clonebundles.t: add test for incremental pull
This demonstrates
issue4932.
i18n: make sure to include translation of (DEPRECATED)
This patch replaces old "DEPRECATED" msgid by "(DEPRECATED)" if that .po
file does not have "(DEPRECATED)" but have "... (DEPRECATED)".
It is necessary to hide deprecated options correctly.
i18n: do not abuse msgstr of "DEPRECATED" to check for bad translation
Because
44cc9f63a2f1 requires the msgstr of "(DEPRECATED)", old *.po files
must be blamed. Using "DEPRECATED" would just hide the error.
For example, "LANG=da_DK.UTF-8 hg help serve" fails to hide deprecated
options right now, but check-translation.py couldn't detect it because
da.po has outdated translation of "DEPRECATED".
filemerge.prompt: separate out choice selection and action
This will make future patches cleaner.
test-merge-prompt.t: add tests for linear updates + change/delete conflicts
Turns out this bit of code was woefully untested.
util: drop Python 2.4 compat by directly importing md5 and sha1
There's been a fair amount of cruft here over the years, which we can all
just get rid of now.