Christian Ebert <blacktrash@gmx.net> [Fri, 05 Nov 2010 10:01:23 +0000] rev 855
Merge with default
Christian Ebert <blacktrash@gmx.net> [Fri, 05 Nov 2010 10:00:11 +0000] rev 854
Turn regexes and escaped keywords into a propertycache
Christian Ebert <blacktrash@gmx.net> [Tue, 02 Nov 2010 14:04:21 +0100] rev 853
Merge with stable
Martin Geisler <mg@aragost.com> [Mon, 01 Nov 2010 10:24:07 +0100] rev 852
run-tests: use regex when searching for $HGPORT in test output
This prevents spurious errors when a changeset hash happens to match
the port number. Before, this invocation gave a test failure:
$ ./run-tests.py test-log.t --port 24427
ERROR: /home/mg/src/mercurial-crew/tests/test-log.t output changed
--- /home/mg/src/mercurial-crew/tests/test-log.t
+++ /home/mg/src/mercurial-crew/tests/test-log.t.err
@@ -626,12 +626,12 @@
$ hg log -b default
changeset: 2:c3a4f03cc9a7
- parent: 0:24427303d56f
+ parent: 0:$HGPORT303d56f
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: commit on default
...
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Wed, 27 Oct 2010 11:15:31 +0100] rev 851
Merge with stable
Kevin Bullock <kbullock@ringworld.org> [Wed, 20 Oct 2010 17:38:21 -0500] rev 850
pull: silence spurious 'requesting all changes' message
When issuing `hg pull -r REV` in a repo with no common ancestor with the
remote repo, the message 'requesting all changes' is printed, even though only
the changese that are ancestors of REV are actually requested. This can be
confusing for users (see
http://www.selenic.com/pipermail/mercurial/2010-October/035508.html).
This silences the message if (and only if) the '-r' option was passed.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Mon, 25 Oct 2010 19:21:06 +0100] rev 849
Function to look up changectx for expansion
Similarly rename variable in kwtemplater.overwrite().
Christian Ebert <blacktrash@gmx.net> [Mon, 25 Oct 2010 19:21:06 +0100] rev 848
Compile regexes on demand
Christian Ebert <blacktrash@gmx.net> [Mon, 25 Oct 2010 20:00:18 +0100] rev 847
Merge with default
Christian Ebert <blacktrash@gmx.net> [Mon, 25 Oct 2010 19:21:06 +0100] rev 846
Fix regressions introduced in 9d01f9cab5e2
- dirstate of overwritten files must be forced to normal
with kwexpand/kwshrink, not commit.
- recorded files must be weeded before overwriting.
- add test cases.
Christian Ebert <blacktrash@gmx.net> [Wed, 20 Oct 2010 22:46:09 +0100] rev 845
Merge with stable
Yuya Nishihara <yuya@tcha.org> [Sat, 02 Oct 2010 22:57:25 +0900] rev 844
tests: accept \-escaped test output
It changes tsttest to accept expected outputs in python-style \-escapes.
It aims to avoid trouble with outputs for non-ascii, color and progress
tests.
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Fri, 15 Oct 2010 00:36:45 +0200] rev 843
Merge with default
Christian Ebert <blacktrash@gmx.net> [Thu, 14 Oct 2010 22:53:17 +0200] rev 842
Only use expensive fctx.cmp when needed
Restrict expensive cmp to cases when:
- comparing against working directory
and
- encode filters active
or
- path is configured for keyword expansion
Christian Ebert <blacktrash@gmx.net> [Wed, 13 Oct 2010 09:21:19 +0100] rev 841
Merge with stable
Nicolas Dumazet <nicdumz.commits@gmail.com> [Tue, 27 Jul 2010 23:07:30 +0900] rev 840
filectx: use ctx.size comparisons to speed up ctx.cmp
Comparing sizes is cheaper than comparing file contents, as it does not
involve reading the file on disk or from the filelog.
It is however not always possible: some extensions, or encode filters,
change data when extracting it to the working directory.
[ original upstream description ]
Christian Ebert <blacktrash@gmx.net> [Wed, 13 Oct 2010 09:18:46 +0100] rev 839
Merge with stable
Christian Ebert <blacktrash@gmx.net> [Tue, 12 Oct 2010 16:29:32 +0100] rev 838
Code cleanup
- move preselection of expansion candidates for rollback
and record into helper function
- same overwrite order in rollback and record:
1. modified, 2. added
- self.wlock() inside kwrepo class instead of repo.wlock()
Christian Ebert <blacktrash@gmx.net> [Sun, 10 Oct 2010 01:07:16 +0100] rev 837
enforce subn method via boolean switch
There are only 2 patterns to choose, and so far only 1 case
where kwtemplater.re_kw.subn is applied on data read from
the working directory: when recording added files.
With this change the code reflects more closely the boolean
character of the switch and underlines the special case.
Christian Ebert <blacktrash@gmx.net> [Sun, 10 Oct 2010 01:07:16 +0100] rev 836
Fix weeding of expansion candidates when recording
Rearrange tests to check this, i.e. that there are changes
in other files, not only the recorded one.
Christian Ebert <blacktrash@gmx.net> [Sun, 10 Oct 2010 01:10:13 +0100] rev 835
Merge with stable
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 09 Oct 2010 16:27:10 -0500] rev 834
run-tests.py: remove support for .bat files
[ original upstream message ]
Benoit Boissinot <benoit.boissinot@ens-lyon.org> [Sat, 09 Oct 2010 16:25:28 -0500] rev 833
run-tests.py: do not install hg when the tests do no exist
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Sat, 09 Oct 2010 15:47:19 +0100] rev 832
Merge with stable
Mads Kiilerich <mads@kiilerich.com> [Sat, 09 Oct 2010 07:13:51 -0500] rev 831
test-keyword: ignore subject in notify hook mails
Long tmpdir names caused truncation of subject anyway, and that made $TESTTMP
replacement fail.
[ original upstream description ]
Mads Kiilerich <mads@kiilerich.com> [Sat, 09 Oct 2010 07:13:49 -0500] rev 830
test-keyword: fix test glob to ACL/SELinux flag
[ original upstream description ]
Mads Kiilerich <mads@kiilerich.com> [Fri, 08 Oct 2010 22:36:11 -0500] rev 829
tests: reintroduce ":$HGPORT" in test output
This reduces the number of patterns that must be adjusted when writing tests.
[ original upstream description ]
Mads Kiilerich <mads@kiilerich.com> [Fri, 08 Oct 2010 22:36:10 -0500] rev 828
tests: remove redundant globs
Many globs now just match $TESTTMP and is no longer needed.
[ original upstream description ]
Erik Zielke <ez@aragost.com> [Thu, 30 Sep 2010 09:49:40 +0200] rev 827
tests: removed test names in tests
The name of the test files is replaced with a glob * expression,
thereby the tests does not depend on the filename of the file they are
in.
[ original upstream description ]
Mads Kiilerich <mads@kiilerich.com> [Fri, 08 Oct 2010 22:36:10 -0500] rev 826
tests: replace test tmp directory with $TESTTMP in test output
This reduces the number of patterns that must be adjusted when writing tests.
[ original upstream description ]
Christian Ebert <blacktrash@gmx.net> [Sat, 09 Oct 2010 12:26:56 +0100] rev 825
Merge with stable
Patrick Mezard <pmezard@gmail.com> [Fri, 08 Oct 2010 17:00:38 -0500] rev 824
run-tests: handle .tst not ending with an LF
[ original upstream description ]
Thomas Arendsen Hein <thomas@intevation.de> [Mon, 27 Sep 2010 22:49:30 +0200] rev 823
tests: show skip reason instead of "irrelevant" with unified tests, too
parsehghaveoutput expects just the test output, not the merged test/output,
so for skipped unified tests e.g.:
Skipped test-convert-darcs.t: missing feature: irrelevant
was shown instead of:
Skipped test-convert-darcs.t: missing feature: darcs client
[ original upstream description ]
Martin Geisler <mg@lazybytes.net> [Sun, 26 Sep 2010 22:22:59 +0200] rev 822
run-tests: move build/ directory to HGTMP
Before, running a test would give you a build/ directory in the root
of your Mercurial source tree. The directory had a full copy of the
the source, so a grep in '**/*.py' would find files inside build/.
[ original upstream description ]
Matt Mackall <mpm@selenic.com> [Fri, 08 Oct 2010 20:12:40 -0500] rev 821
keyword: fix test glob
[ original upstream description ]
Christian Ebert <blacktrash@gmx.net> [Sat, 09 Oct 2010 11:52:32 +0100] rev 820
Merge with default
Christian Ebert <blacktrash@gmx.net> [Sat, 09 Oct 2010 11:35:31 +0100] rev 819
Switch kwtemplater.record in kw_dorecord()
Obsoletes the need for a global recordcommands variable.
Christian Ebert <blacktrash@gmx.net> [Sat, 09 Oct 2010 11:35:24 +0100] rev 818
Specific regular expressions depending on read mode
More safeguarding against accidental (un)expansion:
Reading filelog: act only on \$(kw1|kw2|..)\$ as keywords are always
stored unexpanded.
Reading wdir: act only on \$(kw1|kw2|..): [^$\n\r]*? \$ as we only
are interested in expanded keywords in this situation.
Note: we cannot use ..): [^$\n\r]+? \$ because e.g.
the {branch} template might be empty.
hg record is a special case as we read from the working directory and
need one regex each for modified and added files. Therefore test
recording an added file.
This way we finally also forbid sequences like $Id: $ being treated
as keywords.
Christian Ebert <blacktrash@gmx.net> [Sat, 09 Oct 2010 11:34:55 +0100] rev 817
test: remove remaining sed calls
Christian Ebert <blacktrash@gmx.net> [Sat, 09 Oct 2010 11:34:39 +0100] rev 816
disable expansion in kwfilelog.read() if file renamed in node
Simplifies kwfilelog.cmp() and avoids fiddling with/importing revlog.
Reorder imports alphabetically.
Christian Ebert <blacktrash@gmx.net> [Sat, 09 Oct 2010 11:33:38 +0100] rev 815
Make iskwfile() a weeding method in lieu of a boolean
Update iskwfile docstring.
Christian Ebert <blacktrash@gmx.net> [Sat, 09 Oct 2010 11:33:12 +0100] rev 814
Support copy and rename
copy/rename destinations being unversioned and possibly ignored by
the extension should not contain expanded keywords.
Files copied/renamed from an ignored source are not touched.
Add tests covering both of the above cases, plus the corner case of
cp symlink foo; hg cp -A symlink foo (where foo becomes a regular file).
Christian Ebert <blacktrash@gmx.net> [Sat, 09 Oct 2010 11:33:04 +0100] rev 813
Refactor kwtemplater.overwrite()
Make kwexpand, kwshrink restricted commands - i.e. read from
filelog without expansion for substition in kwtemplater.overwrite,
and set/unset restricted mode for overwrite() in in kwcommitctx
and the dorecord wrapper.
Preselect candidates when working on changed files (rollback, record)
outside kwtemplater class, and remove 6th argument from overwrite().
Avoid duplicate substitution/search in overwrite():
Only go into restricted read mode when reading from filelog.
rollback and record read from the working directory, where
restricted mode would already shrink keywords before overwrite()
either expands or shrinks them again.
This ensures that the usual automatic operations on keywords
are turned off during overwrite() and only overwrite() itself
acts on them.
Reduce manifest calculation to the cases where it is needed.
Move helper function for expansion removal outside kwtemplater class.
Christian Ebert <blacktrash@gmx.net> [Fri, 01 Oct 2010 02:13:31 +0200] rev 812
Use workingctx to detect modified and added files after rollback
Christian Ebert <blacktrash@gmx.net> [Fri, 01 Oct 2010 02:13:31 +0200] rev 811
Rename variable "cfiles" to "changed" for clarity
Christian Ebert <blacktrash@gmx.net> [Sun, 26 Sep 2010 21:59:47 +0200] rev 810
Merge with default
Christian Ebert <blacktrash@gmx.net> [Sun, 26 Sep 2010 19:18:41 +0200] rev 809
Support rollback by restoring expansion to previous values
Prevent spurious differences in the working directory
after a rollback.
Add tests for several rollback situations.
Christian Ebert <blacktrash@gmx.net> [Sun, 26 Sep 2010 19:18:41 +0200] rev 808
Do not expand at all during diff
Always shrink and never expand keywords during a diff operation.
Avoid user distraction e.g. because of spurious differences
appearing in the commit editor.
Christian Ebert <blacktrash@gmx.net> [Sun, 26 Sep 2010 19:18:41 +0200] rev 807
Restore restricted read mode value after overwriting
Even though just enforcing expansion after overwriting files in
the working directory caused no problems that we know of, this avoids
a potential source of problems (e.g. in collaboration other extensions)
at no costs.
Christian Ebert <blacktrash@gmx.net> [Sun, 26 Sep 2010 19:18:41 +0200] rev 806
test: fix typo, rephrase
Christian Ebert <blacktrash@gmx.net> [Thu, 23 Sep 2010 17:03:23 +0200] rev 805
Merge with default
Christian Ebert <blacktrash@gmx.net> [Thu, 23 Sep 2010 16:31:38 +0200] rev 804
Use note admonition in help text
Christian Ebert <blacktrash@gmx.net> [Thu, 23 Sep 2010 10:33:58 +0200] rev 803
Merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 22 Sep 2010 18:20:47 -0500] rev 802
tests: various fixes for new unified test pattern format
[ original upstream message ]
Brodie Rao <brodie@bitheap.org> [Wed, 22 Sep 2010 16:06:02 -0500] rev 801
tests: add glob matching for unified tests
This adds a " (glob)" marker that works like a simpler version of
(re): "*" is converted to ".*", and "?" is converted to ".".
Both special characters can be escaped using "\", and the backslash
itself can be escaped as well.
Other glob-style syntax, like "**", "[chars]", or "[!chars]", isn't
supported.
[ original upstream message ]
Brodie Rao <brodie@bitheap.org> [Wed, 22 Sep 2010 16:06:00 -0500] rev 800
tests: require regexes in unified tests to be marked with " (re)"
Consider this test:
$ hg glog --template '{rev}:{node|short} "{desc}"\n'
@ 2:20c4f79fd7ac "3"
|
| o 1:38f24201dcab "2"
|/
o 0:2a18120dc1c9 "1"
Because each line beginning with "|" can be compiled as a regular
expression (equivalent to ".*|"), they will match any output.
Similarly:
$ echo foo
The blank output line can be compiled as a regular expression and will
also match any output.
With this patch, none of the above output lines will be matched as
regular expressions. A line must end in " (re)" in order to be matched
as one.
Lines are still matched literally first, so the following will pass:
$ echo 'foo (re)'
foo (re)
[ original upstream message ]
Brodie Rao <brodie@bitheap.org> [Wed, 22 Sep 2010 16:05:59 -0500] rev 799
tests: ensure regexes match to the end of the string
Regular expressions in the test suite are currently written assuming
that you need a trailing ".*" to avoid matching to the end.
Instead of matching regular expressions using "^pattern", this patch
makes matching more restrictive by matching "^pattern$".
[ original upstream message ]
Brodie Rao <brodie@bitheap.org> [Wed, 22 Sep 2010 16:05:59 -0500] rev 798
tests: don't match blank output lines as regexes in unified tests
Currently, the following unified test will pass:
$ echo foo
A blank output line (a line containing just two spaces) will match any
output.
The patch modifies the unified test runner to ignore empty strings
strings when do regular expression matching.
[ original upstream message ]
Brodie Rao <brodie@bitheap.org> [Wed, 22 Sep 2010 16:05:58 -0500] rev 797
tests: improve regexes in unified tests
[ original upstream message ]
Christian Ebert <blacktrash@gmx.net> [Wed, 22 Sep 2010 23:46:57 +0200] rev 796
Merge with stable