Martin von Zweigbergk <martinvonz@google.com> [Thu, 23 Jun 2016 12:37:09 -0700] rev 29408
revset: make head() honor order of subset
The ordering of 'x & head()' was broken in 6a1a4c212d50 (revset:
improve head revset performance, 2014-03-13). Presumably due to other
optimizations since then, undoing that change to fix the order does
not slow down the simple case of "hg log -r 'head()'" mentioned in
that commit. I see a small slowdown from ~0.16s to about ~0.19s with
'not 0 & head()', but I'd say it's worth it for the correct output.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 23 Jun 2016 13:08:10 -0700] rev 29407
revsets: use itervalues() where only values are needed
I don't think there will be a noticeable speedup, but it removes an
unused variable.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 23 Jun 2016 12:39:05 -0700] rev 29406
revsets: passing a set to baseset() is not wrong
Since 69c6e9623bdc (revset: force ascending order for baseset
initialized from a set, 2016-04-04), it is safe to pass a revset to a
baseset.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Jun 2016 02:04:43 +0200] rev 29405
pyflakes: use pycompat.pickles to prevent error
The pyflakes in my test box complain about pickle in pycompat.
mercurial/pycompat.py:17: 'pickle' imported but unused
Kostia Balytskyi <ikostia@fb.com> [Tue, 21 Jun 2016 06:29:23 -0700] rev 29404
rebase: move local variable 'obsoletenotrebased' to the RR class
Kostia Balytskyi <ikostia@fb.com> [Tue, 21 Jun 2016 06:29:23 -0700] rev 29403
rebase: move restorestestatus function to be a method of the RR class
Kostia Balytskyi <ikostia@fb.com> [Tue, 21 Jun 2016 06:29:23 -0700] rev 29402
rebase: move local variables related to keeping things unchanged to the RR
This commit moves the following variables, local to the rebase function to be
fields of the rebaseruntime:
-keepf
-keepbranchesf
-keepopen
Kostia Balytskyi <ikostia@fb.com> [Tue, 21 Jun 2016 06:29:23 -0700] rev 29401
rebase: move local variables 'date' and 'extrafns' to the RR class
This commit moves the following variables, local to the rebase function to be
fields of the rebaseruntime:
-date
-extrafns
Kostia Balytskyi <ikostia@fb.com> [Tue, 21 Jun 2016 06:29:23 -0700] rev 29400
rebase: move collapse-related local variables to the RR class
This commit moves the following variables local to the 'rebase' function
to be fields of the rebaseruntime class:
-collapsef
-collapsemsg
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'.
liscju <piotr.listkiewicz@gmail.com> [Tue, 14 Jun 2016 11:53:55 +0200] rev 29389
i18n: translate abort messages
I found a few places where message given to abort is
not translated, I don't find any reason to not translate
them.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 07 Jun 2016 12:10:01 +0200] rev 29388
hgweb: display blamed revision once per block in annotate view
I.e. when a revision blames a block of source lines, only display the
revision link on the first line of the block (this is identified by the
"blockhead" key in annotate context).
This addresses item "Visual grouping of changesets" of the blame improvements
plan (https://www.mercurial-scm.org/wiki/BlamePlan) which states: "Typically
there are block of lines all attributed to the same revision. Instead of
rendering the revision/changeset for every line, we could only render it once
per block."
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 02 Jun 2016 16:26:50 +0200] rev 29387
hgweb: highlight data of the current revision in annotate view
* Distinguish the /annotate/<revision>/<file>#<linenumber> link when it would
lead to the current page (i.e. <revision> is the current revision) (style it
gray and undecorated). This indicates more clearly that this is a "dead-end"
in blame navigation.
* Display lines changed in current revision in green.
Martijn Pieters <mjpieters@fb.com> [Tue, 21 Jun 2016 17:15:51 +0100] rev 29386
bashcompletion: show available command-line switches for aliases
When auto-completing hg commands, aliases are listed, but not the available
switches for an alias, because `HGPLAIN=1` filters these out. Add a
`HGPLAINEXCEPT=alias` exception to resolve this.
We make heavy use of aliases that drive hg log with custom revsets, sorting and
the -G switch, but want our users to be able to auto-complete any additional
command-line switches.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 20 Jun 2016 23:31:45 +0530] rev 29385
py3: shift from __future__ import absolute import to beginning (issue5269)
liscju <piotr.listkiewicz@gmail.com> [Mon, 20 Jun 2016 23:24:55 +0200] rev 29384
pull: add help information about pulling active bookmark
Laura Médioni <laura.medioni@logilab.fr> [Fri, 10 Jun 2016 10:31:42 +0200] rev 29383
templates: add support for search webcommand in json style
Laura Médioni <laura.medioni@logilab.fr> [Mon, 06 Jun 2016 15:14:11 +0200] rev 29382
templates: add support for summary webcommand in json style
Change summary webcommand to yield each element of the shortlog instead of the
entire list.
This makes generated json more readable since each entry can be formatted
separately, instead of returning all the shortlog content in a single string.
Laura Médioni <laura.medioni@logilab.fr> [Fri, 03 Jun 2016 12:32:42 +0200] rev 29381
templates: add support for filerevision webcommand in json style
Laura Médioni <laura.medioni@logilab.fr> [Fri, 03 Jun 2016 11:28:22 +0200] rev 29380
templates: add support for filelog webcommand in json style
Modify changelistentry structure to also deliver phase and branch data and use
either 'parents' or 'allparents' depending on what is defined in the view, in
order to reuse it in filelog structure.
liscju <piotr.listkiewicz@gmail.com> [Thu, 09 Jun 2016 12:41:57 +0200] rev 29379
largefiles: make cloning not ask two times about password (issue4883)
Before this commit url.opener overwritten stored password
for connection with given url/user even when
new password for given connection was not filled. This
commit makes opener overwrites saved authentication only
when it contains password.