Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 07 May 2015 23:34:58 -0700] rev 25097
run-tests: track start and end time of tests
We currently have information about how long each test took, but we have no data
about their actual scheduling. So we now track when a test started and stopped
(in the referential of the whole tests run) to expose this information.
The data is currently in the json only because the json output is meant to be
extensible. Later changeset will includes this data in the text output and we
will be happy to bikeshed its formating there.
Yes, "end" is actually just "start" + "time", but computing it an including it
in the output is simple, cheap and convenient.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Fri, 15 May 2015 09:07:27 -0400] rev 25096
templater: look for mapfiles in template paths
This will allow %include statements to search the default template
paths in addition to the directory where the %including file is.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Fri, 15 May 2015 09:04:32 -0400] rev 25095
config: give it an includepaths option for looking for config files
It is desirable to "derive" templates from the provided templates. A
simple way to do this is e.g.
%include map-cmdline.default
in your own mapfile. Then you only have to redefine a few templates
instead of copying over the whole thing. This %include mechanism
already works for the built-in templates because by default it *only*
looks for files that are in the same directory as the including
mapfile.
With this changeset, config grows an option to add more include paths
for config files.
Yuya Nishihara <yuya@tcha.org> [Fri, 15 May 2015 22:32:31 +0900] rev 25094
revset: map postfix '%' to only() to optimize operand recursively (issue4670)
Instead of keeping 'onlypost' as a method, this patch rewrites it to 'only'
function. This way, 'x%' always has the same weight as 'only(x)'.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 08 May 2015 14:13:12 -0700] rev 25093
dirs.c: pass C string, not Python string, to _finddir()
The callers already have the C string, and although the
PyString_AS_STRING() macro is probably free, this simplifies the code.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 08 May 2015 14:11:00 -0700] rev 25092
dirs.c: extract 'cpath' variable in _delpath() to match _addpath()
The PyString_AS_STRING() macro is probably free, but this makes
_delpath() more similar to _addpath() and simplifies the next patch.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 13 Apr 2015 23:21:02 -0700] rev 25091
treemanifest: store submanifest revlog per directory
With this change, when tree manifests are enabled (in .hg/requires),
commits will be written with one manifest revlog per directory. The
manifest revlogs are stored in
.hg/store/meta/$dir/00manifest.[id].
Flat manifests can still be read and interacted with as usual (they
are also read into treemanifest instances). The functionality for
writing treemanifest as a flat manifest to disk is still left in the
code; tests still pass with '_treeinmem=True' hardcoded.
Exchange is not yet implemented.
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 10:29:39 -0500] rev 25090
hghave: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 10:00:46 -0500] rev 25089
setup: use try/except/finally
This will raise a syntax error for people who attempt to use Py2.4,
but that's already going to fail and we have no way to keep other
2.6isms from creeping in since we've removed the check-code rules and
the buildbot.
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:58:21 -0500] rev 25088
util: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:58:02 -0500] rev 25087
tags: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:57:44 -0500] rev 25086
repoview: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:57:02 -0500] rev 25085
httppeer: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:56:43 -0500] rev 25084
hooks: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:56:27 -0500] rev 25083
hgweb: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:56:05 -0500] rev 25082
commands: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:55:47 -0500] rev 25081
bookmarks: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:55:31 -0500] rev 25080
shelve: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:55:15 -0500] rev 25079
largefiles: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:54:56 -0500] rev 25078
factotum: use try/except/finally
Matt Mackall <mpm@selenic.com> [Fri, 15 May 2015 09:54:35 -0500] rev 25077
check-code: drop try/except/finally check
Adrian Buehlmann <adrian@cadifra.com> [Thu, 14 May 2015 09:04:48 +0200] rev 25076
util.h: kill no longer needed definitions for Python < 2.6
see e1fb276d4619
Matt Mackall <mpm@selenic.com> [Thu, 14 May 2015 16:28:28 -0500] rev 25075
merge with stable
Adrian Buehlmann <adrian@cadifra.com> [Thu, 14 May 2015 11:04:36 +0200] rev 25074
setup: integrate osutil C extension into extmodules initialization
Adrian Buehlmann <adrian@cadifra.com> [Thu, 14 May 2015 11:04:35 +0200] rev 25073
setup: move osutil_ldflags logic to before extmodules definition
Adrian Buehlmann <adrian@cadifra.com> [Thu, 14 May 2015 11:04:31 +0200] rev 25072
setup: kill pure hack for osutil on Windows for Python 2.4
see e1fb276d4619
Adrian Buehlmann <adrian@cadifra.com> [Thu, 14 May 2015 11:37:36 +0200] rev 25071
windows: add comment in normcase()
see also 3c5e818ac679
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Sun, 10 May 2015 10:57:24 -0400] rev 25070
rebase: clear merge when aborting before any rebasing (issue4661)
The check of the inrebase function was not correct, and it failed to
consider the situation in which nothing has been rebased yet, *and*
the working dir had been updated away from the initial revision.
But this is easy to fix. Given the rebase state, we know exactly where
we should be standing: on the first unrebased commit. We check that
instead. I also took the liberty to rename the function, as "inrebase"
doesn't really describe the situation: we could still be in a rebase
state yet the user somehow forcibly updated to a different revision.
We also check that we're in a merge state, since an interrupted merge
is the only "safe" way to interrupt a rebase. If the rebase got
interrupted by power loss or whatever (so there's no merge state),
it's still safer to not blow away the working directory.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Sun, 10 May 2015 10:02:15 -0400] rev 25069
test-rebase-abort: add test from issue4009
The fix for issue4009, namely fe78eb7bcca0, introduced issue4661.
Let's make sure that the fix for issue4661 will not reintroduce
issue4009.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 May 2015 15:00:07 -0700] rev 25068
run-test.py: greatly increase the priority of 'check-code' tests
As check-code is actually quite long to run for its file size, this prevent them
to be scheduled too late during the test run.
This reduces my typical test run from 107 seconds to 90 seconds
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 May 2015 00:04:07 -0700] rev 25067
run-tests: allow different extra weight for slow tests
The 'test-check-code-hg.t' file is not big enough to be prioritized properly.
As a result my tests run often spend about 15 seconds running only it at the
end of its tests run. We make the "slow" mechanism a bit smarter to adjust the
extra weight of each category independently in a future patch.
Durham Goode <durham@fb.com> [Thu, 07 May 2015 21:00:46 -0700] rev 25066
ignore: refactor syntax concatenation
This refactors the syntax+rule concatenation logic to be more separated. It
determines the syntax and the rule separately and then puts them back together.
This will help in a later patch when we want to process just the rule before it
gets concatenated.
Durham Goode <durham@fb.com> [Thu, 07 May 2015 20:57:37 -0700] rev 25065
ignore: refactor file read into a function
This refactors the ignore file reading code into a function so that in a future
patch we can make it recursive.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 14 May 2015 01:49:10 +0900] rev 25064
import-checker: loop to get list of locally defined modules at first
This is a preparation for subsequent patches, which expect that all
locally defined (= mercurial specific) modules are already known
before examinations.
Looping twice for specified modules is a little redundant, but
reasonable cost for improvement in subsequent patches.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Thu, 14 May 2015 01:49:10 +0900] rev 25063
import-checker: add xargs like mode
Before this patch, "import-check.py" is invoked via "xargs" in
"test-module-imports.t", but it doesn't ensure that
"import-checker.py" is certainly invoked with all mercurial specific
files at once.
"xargs" may invoke specified command multiple times with part of
arguments given from stdin: according to "xargs(1)" man page, this
dividing arguments is system-dependent.
This patch adds "xargs" like mode to "import-checker.py".
This can ensure that "import-checker.py" is certainly invoked with all
mercurial specific files at once in "test-module-imports.t". This is
assumed by subsequent patches.
Adrian Buehlmann <adrian@cadifra.com> [Wed, 13 May 2015 20:36:56 +0200] rev 25062
store: add comment in _hashencode with reason for skipping the first 5 chars
Augie Fackler <augie@google.com> [Tue, 14 Apr 2015 10:57:15 -0400] rev 25061
test-run-tests: fix for Python 3.5
This test now passes in both 3.5 and 2.6.
Augie Fackler <augie@google.com> [Tue, 14 Apr 2015 16:09:39 -0400] rev 25060
run-tests: make sure all script lines are bytes
Augie Fackler <augie@google.com> [Tue, 14 Apr 2015 10:56:58 -0400] rev 25059
run-tests: fix checking a line to see if it needs globbing
Augie Fackler <augie@google.com> [Tue, 14 Apr 2015 10:14:49 -0400] rev 25058
run-tests: unblock running python tests in python 3
This makes it clear we need to ban os.popen, but we'll do that in a
later cleanup.
Augie Fackler <augie@google.com> [Mon, 13 Apr 2015 18:07:40 -0400] rev 25057
run-tests: os.popen returns a string, make it bytes again
Augie Fackler <augie@google.com> [Mon, 13 Apr 2015 17:24:10 -0400] rev 25056
run-tests: be more paranoid about os.system using bytes
Augie Fackler <augie@google.com> [Mon, 13 Apr 2015 17:17:17 -0400] rev 25055
run-tests: blacklist entries are bytes, use bname to check blacklisting
Augie Fackler <augie@google.com> [Mon, 13 Apr 2015 16:37:53 -0400] rev 25054
test-run-tests.t: work around file.write() returning an int
In Python 3.5, file.write() returns the number of bytes it wrote
instead of None.
Augie Fackler <augie@google.com> [Tue, 14 Apr 2015 16:24:32 -0400] rev 25053
run-tests: write bytes to the binary buffer on sys.{stdout,stderr}
Augie Fackler <augie@google.com> [Tue, 14 Apr 2015 16:21:10 -0400] rev 25052
run-tests: record faildata using bytes instead of str
lines is already bytes, so this is just fixing a bug on python 3.
Augie Fackler <augie@google.com> [Tue, 14 Apr 2015 16:18:11 -0400] rev 25051
run-tests: do cdata escaping using bytes instead of str
Augie Fackler <augie@google.com> [Mon, 13 Apr 2015 16:33:12 -0400] rev 25050
run-tests: make sure keyword(s) are in bytes and not str
Augie Fackler <augie@google.com> [Mon, 13 Apr 2015 16:31:19 -0400] rev 25049
run-tests: use items instead of iteritems on dicts
This works the same-enough on 2.6 and 3.5 to be fine.
Augie Fackler <augie@google.com> [Mon, 13 Apr 2015 16:30:40 -0400] rev 25048
run-tests: refer to test.bname when sniffing for keywords
Augie Fackler <augie@google.com> [Mon, 13 Apr 2015 15:57:10 -0400] rev 25047
run-tests: string-escape no longer exists in python 3, use unicode_escape
Augie Fackler <augie@google.com> [Mon, 13 Apr 2015 15:55:48 -0400] rev 25046
run-tests: switch all uses of iolock.acquire() to a context manager
Augie Fackler <augie@google.com> [Tue, 21 Apr 2015 12:24:34 -0400] rev 25045
run-tests: use difflib.diff_bytes on Python 3
This method was introduced in Python 3.5 to satisfy our
diffing-strings-of-bytes needs.
Augie Fackler <augie@google.com> [Sun, 12 Apr 2015 16:14:07 -0400] rev 25044
run-tests: fix installation of hg by bytesifying more constants
Augie Fackler <augie@google.com> [Sun, 12 Apr 2015 16:13:38 -0400] rev 25043
setup: decode xcode version number on python3
Augie Fackler <augie@google.com> [Sun, 12 Apr 2015 15:35:57 -0400] rev 25042
run-tests: work around with_hg being bytes or string depending on provenance
Augie Fackler <augie@google.com> [Tue, 14 Apr 2015 16:03:04 -0400] rev 25041
run-tests: even more bytestring annotations for Python 3
Augie Fackler <augie@google.com> [Tue, 14 Apr 2015 16:02:49 -0400] rev 25040
run-tests: write bytes to sys.stdout.buffer in python 3
Augie Fackler <augie@google.com> [Tue, 14 Apr 2015 15:59:59 -0400] rev 25039
run-tests: be more judicious about bytes vs string on test attrs
This introduces a bname attribute for when we need to use the test
name in a path, and retains name for when we need it as a
string. Sadly, we seem to need both of these.
Augie Fackler <augie@google.com> [Tue, 14 Apr 2015 15:56:44 -0400] rev 25038
run-tests: fix _findprogram to reliably return bytes