Matt Mackall <mpm@selenic.com> [Fri, 07 Jun 2013 15:56:16 -0500] rev 19302
run-tests: always gather runtimes
Simon Heimberg <simohe@besonet.ch> [Wed, 05 Jun 2013 22:05:29 +0200] rev 19301
run-tests: when interrupted report time in failure message
When --time is specified, the interruption message of an interrupted test is
extended with the time the test has run
INTERRUPTED: /path/to/tests/test-example.t (after 513 seconds)
Simon Heimberg <simohe@besonet.ch> [Wed, 05 Jun 2013 22:05:02 +0200] rev 19300
run-tests: report interrupted tests
When the test run is aborted, a message is printed for each interrupted test.
This is helpful when a test is hanging.
example failure message:
INTERRUPTED: /path/to/tests/test-example.t
The message can appear before or after the line with the number of tests
Simon Heimberg <simohe@besonet.ch> [Wed, 05 Jun 2013 22:42:43 +0200] rev 19299
run-tests: open hgrc file only for writing
The file is not read here. Opening with "w+" is unnecessary.
Simon Heimberg <simohe@besonet.ch> [Wed, 05 Jun 2013 22:06:16 +0200] rev 19298
color: use pythons isinstance method instead of reprogramming it
Simon Heimberg <simohe@besonet.ch> [Wed, 05 Jun 2013 22:06:02 +0200] rev 19297
color: only provide the required opt to _modesetup
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Thu, 06 Jun 2013 14:05:03 -0400] rev 19296
doc: make it easier to read how to enable extensions
We tell people all the time that enabling extensions is not a scary
thing to do, but we don't make it easy enough for an absolute novice
to do so. When they see a suggestion to do "hg extfoo bar", the error
message tells them "see hg help extensions", but that help page
doesn't actually tell them where configuration files are.
Furthermore, the big warning about why extensions aren't enabled by
default should be pushed down a little bit. Most of the extensions
shipped by hg are not all that scary, and some very basic and useful
cosmetic extensions like graphlog, color, pager, and progress, should
be enabled for many hg users.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Thu, 06 Jun 2013 13:37:41 -0400] rev 19295
doc: reword "config file" to "configuration file"
While we do use the abbreviation "config" elsewhere in the docs, the
phrase "configuration file" is always written out in full, except in
this location in phases.txt.
Matt Mackall <mpm@selenic.com> [Thu, 06 Jun 2013 14:40:26 -0500] rev 19294
run-tests: make --noskips work
Durham Goode <durham@fb.com> [Thu, 30 May 2013 18:47:16 -0700] rev 19293
filelog: switch 'not len(filerevlog)' to 'not filerevlog'
A few places in the code use 'if not len(revlog)' to check if the revlog
exists. Replacing this with 'not filerevlog' allows alternative revlog
implementations to override __nonzero__ to handle this case without
implementing __len__.
Durham Goode <durham@fb.com> [Thu, 30 May 2013 19:29:03 -0700] rev 19292
annotate: simplify annotate parent function
The annotate algorithm used a custom parents() function to try to reuse
filectx and filelogs. I simplified it a bit to rely more heavily on the
self.parents() which makes it work well with alternative filectx
implementations. I tested performance on a file with 5000+ revisions
but no renames, and on a file with 500 revisions repeating a series of
4 edits+renames and saw zero performance hit. In fact, it was reliably a
couple milliseconds faster now.
Added the perfannotate command to contrib/perf.py for future use.
Durham Goode <durham@fb.com> [Thu, 30 May 2013 19:26:56 -0700] rev 19291
changegroup: move changegroup file adding to a separate function
Moving the logic that adds files to a changegroup to a different function
allows extensions to override it and customize the way filelogs are added
to changegroups.
No logic is changed.
Durham Goode <durham@fb.com> [Thu, 30 May 2013 19:25:55 -0700] rev 19290
log: move log file walk to its own function
This moves the logic that determines which changesets to process during a
'hg log foo.txt' command. Putting it in its own function allows extensions
to modify how the file log is traversed. For instance, the current
implementation uses filelog revs heavily. Other implementations may not have
filelog revs available.
The function throws an exception if the traversal is not possible via the
filelog, so the parent function can do things the slow way if necessary
(by walking the entire commit history).
Aside from the exception throwing, no logic is changed.
Durham Goode <durham@fb.com> [Thu, 30 May 2013 17:51:13 -0700] rev 19289
bundle: refactor changegroup prune to be its own function
Moving the prune function to be a non-nested function allows extensions to
control which revisions are allowed in the changegroup. For example, in my
shallow repo extension I want to prevent filelogs from being added to the
bundle.
This also allows an extension to use a filelog implementation that doesn't
have revlog.linkrev implemented.
Durham Goode <durham@fb.com> [Thu, 30 May 2013 17:49:37 -0700] rev 19288
filectx: refactor filectx.rev() to use filectx._changeid
The code in filectx.rev() was identical to filectx._changeid. Fixing this
allows alternative filectx implementations to only override _changeid.