Mercurial > hg
annotate tests/test-eolfilename.t @ 49603:3eda36e9b3d6 stable
matcher: fix issues regex flag contained in pattern (issue6759)
Python 3.11 is now enforcing that flag must be at the beginning of the regex
This creates a serious regression for people using Python 3.11 with an hgignore
using flag in a "relre" pattern.
We now detect any flags in such pattern and "prepend" our ".*" pattern after them.
In addition, we now insert the flag in the regexp to only affect the pattern we
are rewriting. Otherwise, the regex built from the combined pattern would these
flags in the middle of it anyway.
As a side effect of this last change, we fix a bug… before this change regex
flag in a pattern would affect all combined patterns. That was bad and is not
longer the case.
The Rust code needs to be updated to fix that very bug, but we will do it in
another changeset.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 16 Nov 2022 13:05:01 +0100 |
parents | 3175b0e0058b |
children |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
17910
diff
changeset
|
1 #require eol-in-paths |
3607
f4c9bb4ad7b1
issue352: disallow '\n' and '\r' in filenames (dirstate and manifest)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
2 |
26420
2fc86d92c4a9
urls: bulk-change BTS urls to new location
Matt Mackall <mpm@selenic.com>
parents:
23172
diff
changeset
|
3 https://bz.mercurial-scm.org/352 |
3607
f4c9bb4ad7b1
issue352: disallow '\n' and '\r' in filenames (dirstate and manifest)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
4 |
12425
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
5 test issue352 |
3607
f4c9bb4ad7b1
issue352: disallow '\n' and '\r' in filenames (dirstate and manifest)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
6 |
12425
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
7 $ hg init foo |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
8 $ cd foo |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
9 $ A=`printf 'he\rllo'` |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
10 $ echo foo > "$A" |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
11 $ hg add |
17742
405b6bd015df
run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
12 adding he\r (no-eol) (esc) |
405b6bd015df
run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
13 llo |
12425
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
14 abort: '\n' and '\r' disallowed in filenames: 'he\rllo' |
45844
3175b0e0058b
errors: use InputError for errors about bad paths
Martin von Zweigbergk <martinvonz@google.com>
parents:
38263
diff
changeset
|
15 [10] |
12425
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
16 $ hg ci -A -m m |
17742
405b6bd015df
run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
17 adding he\r (no-eol) (esc) |
405b6bd015df
run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
18 llo |
12425
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
19 abort: '\n' and '\r' disallowed in filenames: 'he\rllo' |
45844
3175b0e0058b
errors: use InputError for errors about bad paths
Martin von Zweigbergk <martinvonz@google.com>
parents:
38263
diff
changeset
|
20 [10] |
12425
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
21 $ rm "$A" |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
22 $ echo foo > "hell |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
23 > o" |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
24 $ hg add |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
25 adding hell |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
26 o |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
27 abort: '\n' and '\r' disallowed in filenames: 'hell\no' |
45844
3175b0e0058b
errors: use InputError for errors about bad paths
Martin von Zweigbergk <martinvonz@google.com>
parents:
38263
diff
changeset
|
28 [10] |
12425
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
29 $ hg ci -A -m m |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
30 adding hell |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
31 o |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
32 abort: '\n' and '\r' disallowed in filenames: 'hell\no' |
45844
3175b0e0058b
errors: use InputError for errors about bad paths
Martin von Zweigbergk <martinvonz@google.com>
parents:
38263
diff
changeset
|
33 [10] |
12425
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
34 $ echo foo > "$A" |
38262
7c3a59e2971b
debugwalk: show matcher output only if -v/--verbose
Yuya Nishihara <yuya@tcha.org>
parents:
32553
diff
changeset
|
35 $ hg debugwalk -v |
38263
dbf31732ef64
debugwalk: pretty-print nested matcher
Yuya Nishihara <yuya@tcha.org>
parents:
38262
diff
changeset
|
36 * matcher: |
dbf31732ef64
debugwalk: pretty-print nested matcher
Yuya Nishihara <yuya@tcha.org>
parents:
38262
diff
changeset
|
37 <alwaysmatcher> |
17742
405b6bd015df
run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
38 f he\r (no-eol) (esc) |
405b6bd015df
run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
39 llo he\r (no-eol) (esc) |
405b6bd015df
run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
40 llo |
12425
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
41 f hell |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
42 o hell |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
43 o |
10475
2253715fde97
color: don't crash on invalid status codes (issue2036)
Brodie Rao <me+hg@dackz.net>
parents:
8936
diff
changeset
|
44 |
13945
03f3ce7ca2a8
copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents:
12942
diff
changeset
|
45 $ echo bla > quickfox |
03f3ce7ca2a8
copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents:
12942
diff
changeset
|
46 $ hg add quickfox |
03f3ce7ca2a8
copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents:
12942
diff
changeset
|
47 $ hg ci -m 2 |
03f3ce7ca2a8
copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents:
12942
diff
changeset
|
48 $ A=`printf 'quick\rfox'` |
03f3ce7ca2a8
copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents:
12942
diff
changeset
|
49 $ hg cp quickfox "$A" |
03f3ce7ca2a8
copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents:
12942
diff
changeset
|
50 abort: '\n' and '\r' disallowed in filenames: 'quick\rfox' |
45844
3175b0e0058b
errors: use InputError for errors about bad paths
Martin von Zweigbergk <martinvonz@google.com>
parents:
38263
diff
changeset
|
51 [10] |
13945
03f3ce7ca2a8
copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents:
12942
diff
changeset
|
52 $ hg mv quickfox "$A" |
03f3ce7ca2a8
copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents:
12942
diff
changeset
|
53 abort: '\n' and '\r' disallowed in filenames: 'quick\rfox' |
45844
3175b0e0058b
errors: use InputError for errors about bad paths
Martin von Zweigbergk <martinvonz@google.com>
parents:
38263
diff
changeset
|
54 [10] |
13945
03f3ce7ca2a8
copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents:
12942
diff
changeset
|
55 |
26420
2fc86d92c4a9
urls: bulk-change BTS urls to new location
Matt Mackall <mpm@selenic.com>
parents:
23172
diff
changeset
|
56 https://bz.mercurial-scm.org/2036 |
10475
2253715fde97
color: don't crash on invalid status codes (issue2036)
Brodie Rao <me+hg@dackz.net>
parents:
8936
diff
changeset
|
57 |
12425
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
58 $ cd .. |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
59 |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
60 test issue2039 |
10475
2253715fde97
color: don't crash on invalid status codes (issue2036)
Brodie Rao <me+hg@dackz.net>
parents:
8936
diff
changeset
|
61 |
12425
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
62 $ hg init bar |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
63 $ cd bar |
23172
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
64 $ cat <<EOF >> $HGRCPATH |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
65 > [extensions] |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
66 > color = |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
67 > [color] |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
68 > mode = ansi |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
69 > EOF |
12425
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
70 $ A=`printf 'foo\nbar'` |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
71 $ B=`printf 'foo\nbar.baz'` |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
72 $ touch "$A" |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
73 $ touch "$B" |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
74 $ hg status --color=always |
17910
c8709ff57ff2
status: use condwrite to avoid zero-width format string hack
Matt Mackall <mpm@selenic.com>
parents:
17742
diff
changeset
|
75 \x1b[0;35;1;4m? \x1b[0m\x1b[0;35;1;4mfoo\x1b[0m (esc) |
12942
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12425
diff
changeset
|
76 \x1b[0;35;1;4mbar\x1b[0m (esc) |
17910
c8709ff57ff2
status: use condwrite to avoid zero-width format string hack
Matt Mackall <mpm@selenic.com>
parents:
17742
diff
changeset
|
77 \x1b[0;35;1;4m? \x1b[0m\x1b[0;35;1;4mfoo\x1b[0m (esc) |
12942
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12425
diff
changeset
|
78 \x1b[0;35;1;4mbar.baz\x1b[0m (esc) |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
13987
diff
changeset
|
79 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
13987
diff
changeset
|
80 $ cd .. |