Christian Ebert <blacktrash@gmx.net> [Sat, 11 Feb 2012 14:18:19 +0000] rev 1050
Merge with stable
Patrick Mezard <patrick@mezard.eu> [Tue, 07 Feb 2012 18:47:16 +0100] rev 1049
mq: restore _branchtags() fast path (issue3223)
Since a5917346c72e, mq saves the nodeid of the first applied patch to
cache/branchheads, which breaks the optimized cache handling introduced in
fbf8320f25c8. The problem is the revision being committed is appended to
mqrepo.applied after the commit succeeds, which means mqrepo._branchtags()
performs a regular update and write the first applied patch to the branch
cache.
One solution is to set a context variable _committingpatch on the mqrepo while
it is committing a patch and to take it in account when deciding to fast-path
mqrepo._branchtags(). Not really elegant but it works.
The changes to test-mq-caches.t reverse changes introduced by a5917346c72e. The
cache should not have been updated with mq records.
The changes to test-keyword.t are indirectly caused by a5917346c72e.
Reported and analyzed by Yuya Nishihara <yuya@tcha.org>
Notes:
- qpush still makes a slow path _branchtags() call when checking heads. Maybe
this can be optimized.
- be careful when merging this patch in default as secretcommit() was renamed
newcommit() right after the end of the code freeze.
[ original upstream message ]
Jim Hague <jim.hague@acm.org> [Wed, 08 Feb 2012 16:56:00 +0000] rev 1048
tests: tighten checks for octal escapes in shell printf.
printf on AIX default shell ksh (89) says \1 is an invalid escape. It insists
on at least 2 digits. This causes failures in test-keyword.t and test-status.t.
check-code.py already looks out for \NNN and recommends using Python
for outputting octal values. Extend the check to \NN and \N and fix up
resulting failures.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Mon, 23 Jan 2012 16:21:12 +0100] rev 1047
Merge with stable
Mads Kiilerich <mads@kiilerich.com> [Sat, 14 Jan 2012 01:56:27 +0100] rev 1046
run-tests: expand user in --with-hg
This makes it possible to run:
$ ./run-tests.py --with-hg=~/hg-bin/hg
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Fri, 20 Jan 2012 01:24:16 +0100] rev 1045
tests: let run-tests.py default to use 'sh' in $PATH instead of '/bin/sh'
This makes it easier to run tests on systems that have a usable sh in the
search path but not in the standard location.
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Sat, 14 Jan 2012 01:55:50 +0100] rev 1044
tests: add 'set -x' to the .t sh scripts in run-tests.py debug mode
This makes -d output much more readable when debugging the test framework or
very strange test failures.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Thu, 19 Jan 2012 02:01:05 +0100] rev 1043
Merge with default
Christian Ebert <blacktrash@gmx.net> [Sun, 15 Jan 2012 13:37:33 +0100] rev 1042
Update filectx.cmp monkeypatch to handle '\1\n' at start of file
Analogous to 012b285cf643 in mercurial main.
Sune Foldager <cryo@cyanite.org> [Wed, 18 Jan 2012 16:46:15 +0100] rev 1041
phases: use nodemap to check for missing nodes
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Thu, 19 Jan 2012 01:50:48 +0100] rev 1040
Merge with stable
Markus Zapke-Gr?ndemann <info@keimlink.de> [Wed, 11 Jan 2012 15:38:31 +0100] rev 1039
tests: add htmlcov option
[ original upstream message ]
Matt Mackall <mpm@selenic.com> [Thu, 12 Jan 2012 14:39:02 -0600] rev 1038
run-tests: use a list comprehension instead of map
[ original upstream message ]
Markus Zapke-Gr?ndemann <info@keimlink.de> [Wed, 11 Jan 2012 15:37:25 +0100] rev 1037
tests: fix omit path list
All directories need a trailing asterisk. Otherwise the files are not excluded
from coverage.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Fri, 09 Dec 2011 00:10:00 +0100] rev 1036
Merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 08 Dec 2011 14:32:44 -0600] rev 1035
branch: warn on branching
[ orginal upstream message ]
Christian Ebert <blacktrash@gmx.net> [Thu, 24 Nov 2011 06:43:43 +0000] rev 1034
Merge with stable
Mads Kiilerich <mads@kiilerich.com> [Mon, 21 Nov 2011 01:49:20 +0100] rev 1033
tests: use an alias to make msys 'pwd' return paths with forward slashes
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Mon, 21 Nov 2011 01:49:20 +0100] rev 1032
tests: skip cvs tests with msys on windows
They will fail with weird 'ssh' errors.
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Mon, 21 Nov 2011 01:49:20 +0100] rev 1031
tests: introduce 'hghave msys' to skip tests that would fail because of msys
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Thu, 24 Nov 2011 06:42:48 +0000] rev 1030
Merge with default
Christian Ebert <blacktrash@gmx.net> [Wed, 23 Nov 2011 01:20:32 +0000] rev 1029
test-keyword: use inline doctest syntax
Christian Ebert <blacktrash@gmx.net> [Mon, 21 Nov 2011 11:52:11 +0000] rev 1028
Merge with stable
Mads Kiilerich <mads@kiilerich.com> [Mon, 21 Nov 2011 00:39:32 +0100] rev 1027
tests: skip color test on platforms without tic
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Mon, 21 Nov 2011 11:51:46 +0000] rev 1026
Merge with default
Make tests/hgave executable on stable branch too.
Christian Ebert <blacktrash@gmx.net> [Fri, 18 Nov 2011 11:06:59 +0000] rev 1025
Merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 16 Nov 2011 18:04:19 -0600] rev 1024
merge: give a special message for internal:merge failure (issue3105)
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Wed, 16 Nov 2011 12:55:59 +0000] rev 1023
Merge with stable
Mads Kiilerich <mads@kiilerich.com> [Wed, 16 Nov 2011 03:45:14 +0100] rev 1022
tests: use the specified shell for running old fashioned sh tests
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Fri, 11 Nov 2011 09:39:33 +0000] rev 1021
Merge with stable
Christian Ebert <blacktrash@gmx.net> [Fri, 11 Nov 2011 09:38:45 +0000] rev 1020
Make hghave executable
Mads Kiilerich <mads@kiilerich.com> [Mon, 07 Nov 2011 03:25:10 +0100] rev 1019
run-tests: make $TESTTMP matching case-insensitive on windows
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Mon, 07 Nov 2011 03:25:10 +0100] rev 1018
run-tests: don't quote command names - that do apparently not work with msys
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Mon, 07 Nov 2011 03:25:10 +0100] rev 1017
tests: ignore \r on windows
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Mon, 07 Nov 2011 03:25:10 +0100] rev 1016
run-tests: convert windows paths to unix
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Mon, 07 Nov 2011 03:25:10 +0100] rev 1015
tests: make (glob) on windows accept \ instead of /
Globbing is usually used for filenames, so on windows it is reasonable and very
convenient that glob patterns accepts '\' or '/' when the pattern specifies
'/'.
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Mon, 07 Nov 2011 03:24:53 +0100] rev 1014
tests: use 'hghave serve' to guard tests that requires serve daemon management
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Mon, 07 Nov 2011 03:14:55 +0100] rev 1013
tests: use 'hghave system-sh' to guard tests that requires sh in system()
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Mon, 07 Nov 2011 03:14:55 +0100] rev 1012
tests: use 'hghave no-windows' to avoid testing reserved file names on windows
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Mon, 07 Nov 2011 03:14:55 +0100] rev 1011
tests: use 'hghave unix-permissions' for tests that really use chmod
chmod of helper scripts is not included.
tests that exercise the x bit in the file system uses 'hghave execbit'.
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Mon, 07 Nov 2011 03:14:54 +0100] rev 1010
tests: use 'hghave symlink' for tests using symlinks
[ original upstream message ]
Mads Kiilerich <mads@kiilerich.com> [Mon, 07 Nov 2011 02:44:04 +0100] rev 1009
tests: make '(esc)' matching in run-tests.py work as intended
The code for match on (esc) lines didn't work, and it would thus always end up
emitting another suggestion ... which however would match the old one.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Wed, 09 Nov 2011 13:45:20 +0000] rev 1008
Merge with default
Christian Ebert <blacktrash@gmx.net> [Wed, 09 Nov 2011 13:44:57 +0000] rev 1007
Add hghave test as of 5635a4017061
Christian Ebert <blacktrash@gmx.net> [Tue, 08 Nov 2011 18:13:53 +0000] rev 1006
Merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 07 Nov 2011 13:46:41 -0600] rev 1005
run-tests: replace inline python handling with more native scheme
Normally changes in tests are reported like this in diffs:
$ cat foo
- a
+ b
Using -i mode lets us update tests when the new results are correct
and/or populate tests with their output.
But with the standard doctest framework, inline Python sections in
tests changes instead result in a big failure report that's unhelpful.
So here, we replace the doctest calls with a simple compile/eval loop.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Mon, 07 Nov 2011 13:52:03 +0000] rev 1004
Merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 03 Nov 2011 15:18:10 -0500] rev 1003
run-tests: minor cleanups
[ original upstream message ]
Matt Mackall <mpm@selenic.com> [Thu, 03 Nov 2011 15:08:45 -0500] rev 1002
run-tests: pull out line matching function
[ original upstream message ]
Matt Mackall <mpm@selenic.com> [Thu, 03 Nov 2011 14:51:04 -0500] rev 1001
run-tests: pull out unified matching funcs
[ original upstream message ]
Matt Mackall <mpm@selenic.com> [Thu, 03 Nov 2011 14:48:56 -0500] rev 1000
tests: add some comments to the unified test code
[ original upstream message ]
Matt Mackall <mpm@selenic.com> [Thu, 03 Nov 2011 14:30:00 -0500] rev 999
tests: rewrite inline Python support
Tests with inline Python could turn '>>>' into their underlying python
invocation if the test got updated with -i.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Mon, 07 Nov 2011 13:48:11 +0000] rev 998
Backout b78cce2b1430 until a proper solution is found
Christian Ebert <blacktrash@gmx.net> [Mon, 24 Oct 2011 17:02:10 +0100] rev 997
Merge with stable
Thomas Arendsen Hein <thomas@intevation.de> [Sat, 22 Oct 2011 23:21:38 +0200] rev 996
run-tests: make sure no_proxy/NO_PROXY are empty to fix test-http-proxy.t
If no_proxy (or NO_PROXY) includes localhost, the test for detecting an
unreachable proxy fails, because the proxy setting is ignored.
[ original upstream message ]
Thomas Arendsen Hein <thomas@intevation.de> [Mon, 24 Oct 2011 13:54:59 +0200] rev 995
keyword: use util.realpath instead of os.path.realpath
This makes test-keyword.t pass on Python 2.4.1 (e.g. Debian sarge)
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Sat, 22 Oct 2011 15:45:19 +0100] rev 994
Merge with default
Christian Ebert <blacktrash@gmx.net> [Fri, 21 Oct 2011 12:07:27 +0100] rev 993
Correct grammar in iskwfile docstring
Christian Ebert <blacktrash@gmx.net> [Sat, 22 Oct 2011 15:43:48 +0100] rev 992
Merge with stable
Greg Ward <greg@gerg.ca> [Fri, 30 Sep 2011 21:58:54 -0400] rev 991
rollback: avoid unsafe rollback when not at tip (issue2998)
You can get into trouble if you commit, update back to an older
changeset, and then rollback. The update removes your valuable changes
from the working dir, then rollback removes them history. Oops: you've
just irretrievably lost data running nothing but core Mercurial
commands. (More subtly: rollback from a shared clone that was already
at an older changeset -- no update required, just rollback from the
wrong directory.)
The fix assumes that only "commit" transactions have irreplaceable
data, and allows rolling back non-commit transactions as always. But
when rolling back a commit, check that the working dir is checked out
to tip, i.e. the changeset we're about to destroy. If not, abort. You
can get back the old (dangerous) behaviour with --force.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Sun, 16 Oct 2011 15:32:04 +0100] rev 990
Merge with stable
Idan Kamara <idankk86@gmail.com> [Thu, 13 Oct 2011 17:54:37 +0200] rev 989
run-tests: end doctest block when seeing a non-command
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Thu, 13 Oct 2011 17:48:29 +0100] rev 988
Merge with stable
Idan Kamara <idankk86@gmail.com> [Wed, 12 Oct 2011 22:01:14 +0200] rev 987
tests: add support for inline doctests in test files
This adds doctest like syntax to .t files, that can be interleaved with regular
shell code:
$ echo -n a > file
>>> print open('file').read()
a
>>> open('file', 'a').write('b')
$ cat file
ab
The syntax is exactly the same as regular doctests, so multiline statements
look like this:
>>> for i in range(3):
... print i
0
1
2
Each block has its own context, i.e.:
>>> x = 0
>>> print x
0
$ echo 'foo'
foo
>>> print x
will result in a NameError.
Errors are displayed in standard doctest format:
>>> print 'foo'
bar
--- /home/idan/dev/hg/default/tests/test-test.t
+++ /home/idan/dev/hg/default/tests/test-test.t.err
@@ -2,3 +2,16 @@
> >>> print 'foo'
> bar
> EOF
+ **********************************************************************
+ File "/tmp/tmps8X_0ohg-tst", line 1, in tmps8X_0ohg-tst
+ Failed example:
+ print 'foo'
+ Expected:
+ bar
+ Got:
+ foo
+ **********************************************************************
+ 1 items had failures:
+ 1 of 1 in tmps8X_0ohg-tst
+ ***Test Failed*** 1 failures.
+ [1]
As for the implementation, it's quite simple: when the test runner sees a line
starting with '>>>' it converts it, and all subsequent lines until the next
line that begins with '$' to a 'python -m heredoctest <<EOF' call with the
proper heredoc to follow. So if we have this test file:
>>> for c in 'abcd':
... print c
a
b
c
d
$ echo foo
foo
It gets converted to:
$ python -m heredoctest <<EOF
> >>> for c in 'abcd':
> ... print c
> a
> b
> c
> d
> EOF
$ echo foo
foo
And then processed like every other test file by converting it to a sh script.
[ original upstream message ]