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 ]
Christian Ebert <blacktrash@gmx.net> [Sat, 08 Oct 2011 00:24:35 +0100] rev 986
Merge with stable
Greg Ward <greg@gerg.ca> [Sun, 02 Oct 2011 14:34:28 -0400] rev 985
import: wrap a transaction around the whole command
Now 'rollback' after 'import' is less surprising: it rolls back all of
the imported changesets, not just the last one. As an extra added
benefit, you don't need 'rollback -f' after 'import --bypass', which
was an undesired side effect of fixing issue2998 (59e8bc22506e)..
Note that this is a different take on issue963, which complained that
rollback after importing multiple patches returned the working dir
parent to the starting point, not to the second-last patch applied.
Since we now rollback the entire import, returning the working dir to
the starting point is entirely logical. So this change also undoes
a732eebf1958, the fix to issue963, and updates its tests accordingly.
Bottom line: rollback after import was weird before issue963,
understandable since the fix for issue963, and even better now.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Wed, 14 Sep 2011 16:19:33 +0100] rev 984
(0.9.2compat) merge with default
Adapt preserving filemode.
Fix a typo.
Clean up last merge.
Christian Ebert <blacktrash@gmx.net> [Wed, 14 Sep 2011 15:34:32 +0100] rev 983
Merge with default
Christian Ebert <blacktrash@gmx.net> [Sat, 10 Sep 2011 13:23:41 +0100] rev 982
Make status test after record and kwexpand/kwshrink reliable
This guarantees test failure when the dirstate code is omitted at
the end of the kwtemplater.overwrite method.
kwexpand/kwshrink:
Without a 1 second wait the test succeeds sometimes, even when
the dirstate of the overwritten file is not forced to normal.
record:
status after recording an added file allows to check whether
normallookup is needed after overwriting.
Christian Ebert <blacktrash@gmx.net> [Wed, 14 Sep 2011 15:30:21 +0100] rev 981
Preserve file mode when overwriting
Christian Ebert <blacktrash@gmx.net> [Tue, 09 Aug 2011 12:56:43 +0200] rev 980
Merge with default
Christian Ebert <blacktrash@gmx.net> [Tue, 09 Aug 2011 12:54:11 +0200] rev 979
Avoid x = a and b or c
Christian Ebert <blacktrash@gmx.net> [Mon, 08 Aug 2011 09:38:40 +0100] rev 978
Merge with stable
Augie Fackler <durin42@gmail.com> [Mon, 25 Jul 2011 16:37:18 -0500] rev 977
tests: use getattr instead of hasattr
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Thu, 14 Jul 2011 08:39:48 +0100] rev 976
Merge with stable
Patrick Mezard <pmezard@gmail.com> [Wed, 13 Jul 2011 19:23:08 +0200] rev 975
run-tests: fix summary when accepting changes interactively
Accepted changes were not counted as success.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Thu, 07 Jul 2011 12:54:12 +0100] rev 974
Merge with default
Christian Ebert <blacktrash@gmx.net> [Sun, 03 Jul 2011 12:58:03 +0200] rev 973
Reuse already present working contexts for match
Shortens overlong line as side-effect.
Christian Ebert <blacktrash@gmx.net> [Fri, 01 Jul 2011 14:52:14 +0200] rev 972
Merge with stable
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 30 Jun 2011 16:36:38 +0200] rev 971
run-test: revert most of 439ed4721a6d, timeout uses fallback for terminate()
[ original upstream message ]
Thomas Arendsen Hein <thomas@intevation.de> [Thu, 30 Jun 2011 16:25:05 +0200] rev 970
run-tests: fallback to SIGTERM if subprocess.Popen does not have terminate()
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Mon, 20 Jun 2011 12:02:52 +0200] rev 969
Merge with stable
Matt Mackall <mpm@selenic.com> [Sat, 18 Jun 2011 16:52:51 -0500] rev 968
scmutil: switch match users to supplying contexts
The most appropriate context is not always clearly defined. The obvious cases:
For working directory commands, we use None
For commands (eg annotate) with single revs, we use that revision
The less obvious cases:
For commands (eg status, diff) with a pair of revs, we use the second revision
For commands that take a range (like log), we use None
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Tue, 14 Jun 2011 20:35:21 +0200] rev 967
Merge with stable
Idan Kamara <idankk86@gmail.com> [Sun, 12 Jun 2011 17:26:20 +0300] rev 966
run-tests: verbose log ignored test
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Sat, 11 Jun 2011 15:03:58 +0200] rev 965
Merge with stable
Patrick Mezard <pmezard@gmail.com> [Sat, 11 Jun 2011 14:17:25 +0200] rev 964
patch: generalize the use of patchmeta in applydiff()
- Add patchmeta.copy() and emit copies from iterhunks. Modifying patchmeta
instances in applydiff() makes things simpler.
- Rename selectfile() into makepatchmeta(). It is responsible for creating
patchmeta for regular patches.
- Pass patchmeta objects to patchfile() directly
patchmeta instances were associated with git patches, for regular patches we
had to pass additional variables to tell the patch intent to patchfile().
Instead, we generate patchmeta for regular patches and pass them. This will
also help with patch filtering by matcher objects.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Thu, 02 Jun 2011 00:12:10 +0100] rev 963
Merge with stable
Augie Fackler <durin42@gmail.com> [Tue, 31 May 2011 20:39:04 -0500] rev 962
run-tests: allow whitelisting tests that should always run
It's desirable to run some tests all the time, for example
test-check-pyflakes.t and test-check-code-hg.py. This allows passing
--whitelist as a path to a file (flag can be specified more than once)
which contains a list of files to whitelist. Whitelisted tests are run
even if they're blacklisted or wouldn't match a --keyword test
run. For example, to do a quick test of usehttp2, one can now do
$ cat > test-whitelist <<EOF
> test-check-pyflakes.t
> test-check-code-hg.py
> EOF
$ (cd tests && ./run-tests.py --extra-config-opt 'ui.usehttp2=true'
> -k http -j 8 --whitelist test-whitelist)
and have all http-specific tests run as well as the two code linters.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Sat, 28 May 2011 15:16:55 +0100] rev 961
Merge with stable
Patrick Mezard <pmezard@gmail.com> [Sat, 28 May 2011 11:44:27 +0200] rev 960
run-tests: fix --blacklist (broken by 95715c2f90bf)
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Sat, 28 May 2011 03:19:16 +0100] rev 959
Merge with stable
Patrick Mezard <pmezard@gmail.com> [Fri, 27 May 2011 21:50:10 +0200] rev 958
patch: use temporary files to handle intermediate copies
git patches may require copies to be handled out-of-order. For instance, take
the following sequence:
* modify a
* copy a into b
Here, we have to generate b from a before its modification. To do so,
applydiff() was scanning for copy metadata and performing the copies before
processing the other changes in-order. While smart and efficient, this approach
complicates things by handling file copies and file creations at different
places and times. While a new file must not exist before being patched a copied
file already exists before applying the first hunk.
Instead of copying the files at their final destination before patching, we
store them in a temporary file location and retrieve them when patching. The
filestore always stores file content in real files but nothing prevents adding
a cache layer. The filestore class was kept separate from fsbackend for at
least two reasons:
- This class is likely to be reused as a temporary result store for a future
repository patching call (entries just have to be extended to contain copy
sources).
- Delegating this role to backends might be more efficient in a repository
backend case: the source files are already available in the repository itself
and do not need to be copied again. It also means that third-parties backend
would have to implement two other methods. If we ever decide to merge the
filestore feature into backend, a minimalistic approach would be to compose
with filestore directly. Keep in mind this copy overhead only applies for
copy/rename sources, and may even be reduced to copy sources which have to
handled ahead of time.
[ original upstream message ]
Patrick Mezard <pmezard@gmail.com> [Fri, 27 May 2011 21:50:09 +0200] rev 957
patch: refactor file creation/removal detection
The patcher has to know if a file is being created or removed to check if the
target already exists, or to actually unlink the file when a hunk emptying it
is applied. This was done by embedding the creation/removal information in the
first (and only) hunk attached to the file.
There are two problems with this approach:
- creation/removal is really a property of the file being patched and not its
hunk.
- for regular patches, file creation cannot be deduced at parsing time: there
are case where the *stripped* file paths must be compared. Modifying hunks
after their creation is clumsy and prevent further refactorings related to
copies handling.
Instead, we delegate this job to selectfile() which has all the relevant
information, and remove the hunk createfile() and rmfile() methods.
[ original upstream message ]
Idan Kamara <idankk86@gmail.com> [Fri, 27 May 2011 17:46:48 +0300] rev 956
run-tests: fix --blacklist with jobs > 1
filter blacklisted tests before partitioning them
to the children.
maintains the 'Skipped...' output but not the 's'.
[ original upstream message ]
Idan Kamara <idankk86@gmail.com> [Fri, 27 May 2011 17:46:47 +0300] rev 955
run-tests: slightly simplify blacklist check
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Thu, 19 May 2011 00:51:06 +0200] rev 954
Merge with stable
Patrick Mezard <pmezard@gmail.com> [Wed, 18 May 2011 23:48:13 +0200] rev 953
patch: set desired mode when patching, not in updatedir()
This patch and the following aim at merging _updatedir() actions into
_applydiff().
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Wed, 18 May 2011 23:30:45 +0200] rev 952
Merge with stable