Kostia Balytskyi <ikostia@fb.com> [Tue, 21 Jun 2016 07:22:49 -0700] rev 29399
rebase: pass repo, ui and opts objects to the RR class constructor
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 21 Jun 2016 00:50:39 +0900] rev 29398
check-code: build translation table for repquote in global for efficiency
Rebuilding translation table (256 size) at each repquote() invocations
is redundant.
For example, this patch decreases user time of command invocation
below from 18.297s to 13.445s (about -27%) on a Linux box. This
command is main part of test-check-code.t.
hg locate | xargs python contrib/check-code.py --warnings --per-file=0
This patch adds "_repquote" prefix to functions and variables factored
out from repquote() to avoid conflict of name in the future.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 21 Jun 2016 00:50:39 +0900] rev 29397
check-code: detect "missing _() in ui message" more exactly
Before this patch, "missing _() in ui message" rule overlooks
translatable message, which starts with other than alphabet.
To detect "missing _() in ui message" more exactly, this patch
improves the regexp with assumptions below.
- sequence consisting of below might precede "translatable message"
in same string token
- formatting string, which starts with '%'
- escaped character, which starts with 'b' (as replacement of '\\'), or
- characters other than '%', 'b' and 'x' (as replacement of alphabet)
- any string tokens might precede a string token, which contains
"translatable message"
This patch builds an input file, which is used to examine "missing _()
in ui message" detection, before '"$check_code" stringjoin.py' in
test-contrib-check-code.t, because this reduces amount of change churn
in subsequent patch.
This patch also applies "()" instead of "_()" on messages below to
hide false-positives:
- messages for ui.debug() or debug commands/tools
- contrib/debugshell.py
- hgext/win32mbcs.py (ui.write() is used, though)
- mercurial/commands.py
- _debugchangegroup
- debugindex
- debuglocks
- debugrevlog
- debugrevspec
- debugtemplate
- untranslatable messages
- doc/gendoc.py (ReST specific text)
- hgext/hgk.py (permission string)
- hgext/keyword.py (text written into configuration file)
- mercurial/cmdutil.py (formatting strings for JSON)
Jun Wu <quark@fb.com> [Wed, 22 Jun 2016 21:30:49 +0100] rev 29396
revlog: add a fast path for "ambiguous identifier"
Before fd1bb7c, if the C index.partialmatch raises RevlogError, the Python
code raises "ambiguous identifier" error immediately, which is efficient.
fd1bb7c took hidden revisions into consideration and forced the slow path
enumerating the changelog to double-check hidden revisions. But it's not
necessary if we know the revlog has no hidden revisions.
This patch adds back the fast path for unfiltered revlogs.
Augie Fackler <raf@durin42.com> [Thu, 23 Jun 2016 20:45:37 -0400] rev 29395
import-checker: ensure cffi is always a system module
I've had reports that this is not always happening, so whitelist it
the way we whitelist other problem cases.
Martijn Pieters <mjpieters@fb.com> [Thu, 23 Jun 2016 18:21:25 +0100] rev 29394
atomictempfile: add context manager support
Close the file (moving it in place) on clean context exit, discard when there
has been an exception.
Martijn Pieters <mjpieters@fb.com> [Thu, 23 Jun 2016 18:20:58 +0100] rev 29393
atomictempfile: add read to the supported file operations
Martijn Pieters <mjpieters@fb.com> [Thu, 23 Jun 2016 18:18:33 +0100] rev 29392
atomictempfile: remove test ordering
These tests are independent and numbering only makes it harder to add more and
logically group them.
Martijn Pieters <mjpieters@fb.com> [Thu, 23 Jun 2016 17:35:43 +0100] rev 29391
atomictempfile: use a tempdir to keep the test environment clean
Rather than pre-emptively delete a file, execute the test in a dedicated
temporary directory that is removed after each test.
Yuya Nishihara <yuya@tcha.org> [Wed, 22 Jun 2016 22:02:25 +0900] rev 29390
test-revset: show how inconsistent the ordering of compound expressions is
This adds mostly broken tests that will be fixed by subsequent patches. We
generally don't do that, but this patch series would be hard to review
without a set of broken tests.
Note that some tests pass thanks to the reordering problem in optimize().
For instance, '2:0 & _intlist(0 1 2)' doesn't fail because it is rewritten
as '_intlist(0 1 2) & 2:0'.