annotate tests/test-hgignore.t @ 49558:363923bd51cd stable

dirstate-v2: hash the source of the ignore patterns as well Fixes the test introduced in the last changeset. This caused the hash to change, which means that the check in the test had to be adapted. Since this hash is only done as a caching mechanism, invalidation does not pose any backwards compatibility issues.
author Raphaël Gomès <rgomes@octobus.net>
date Wed, 02 Nov 2022 12:05:34 +0100
parents ca19335e86e5
children 3eda36e9b3d6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
48068
bf8837e3d7ce dirstate: Remove the flat Rust DirstateMap implementation
Simon Sapin <simon.sapin@octobus.net>
parents: 47674
diff changeset
1 #testcases dirstate-v1 dirstate-v2
47129
93eb6c8035a9 dirstate-tree: Add a dirstate-v1-tree variant of some tests
Simon Sapin <simon.sapin@octobus.net>
parents: 42864
diff changeset
2
47281
6763913fa175 dirstate-v2: Add a variant of some tests, that uses the new format
Simon Sapin <simon.sapin@octobus.net>
parents: 47129
diff changeset
3 #if dirstate-v2
48235
5c567aca080d dirstate-v2: add an option to prevent unintentional slow dirstate-v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48223
diff changeset
4 $ cat >> $HGRCPATH << EOF
5c567aca080d dirstate-v2: add an option to prevent unintentional slow dirstate-v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48223
diff changeset
5 > [format]
48674
f7086f6173f8 dirstate-v2: rename the configuration to enable the format
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48295
diff changeset
6 > use-dirstate-v2=1
48235
5c567aca080d dirstate-v2: add an option to prevent unintentional slow dirstate-v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48223
diff changeset
7 > [storage]
5c567aca080d dirstate-v2: add an option to prevent unintentional slow dirstate-v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48223
diff changeset
8 > dirstate-v2.slow-path=allow
5c567aca080d dirstate-v2: add an option to prevent unintentional slow dirstate-v2
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 48223
diff changeset
9 > EOF
47281
6763913fa175 dirstate-v2: Add a variant of some tests, that uses the new format
Simon Sapin <simon.sapin@octobus.net>
parents: 47129
diff changeset
10 #endif
6763913fa175 dirstate-v2: Add a variant of some tests, that uses the new format
Simon Sapin <simon.sapin@octobus.net>
parents: 47129
diff changeset
11
25869
a72e304df528 test: move ignore test run into a subdirectory
Durham Goode <durham@fb.com>
parents: 25283
diff changeset
12 $ hg init ignorerepo
a72e304df528 test: move ignore test run into a subdirectory
Durham Goode <durham@fb.com>
parents: 25283
diff changeset
13 $ cd ignorerepo
1478
e6dd91a88b57 add a test for hgignore
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
14
32605
e6ff007e107e match: introduce nevermatcher for when no ignore files are present
Siddharth Agarwal <sid0@fb.com>
parents: 32502
diff changeset
15 debugignore with no hgignore should be deterministic:
e6ff007e107e match: introduce nevermatcher for when no ignore files are present
Siddharth Agarwal <sid0@fb.com>
parents: 32502
diff changeset
16 $ hg debugignore
e6ff007e107e match: introduce nevermatcher for when no ignore files are present
Siddharth Agarwal <sid0@fb.com>
parents: 32502
diff changeset
17 <nevermatcher>
e6ff007e107e match: introduce nevermatcher for when no ignore files are present
Siddharth Agarwal <sid0@fb.com>
parents: 32502
diff changeset
18
12399
4fee1fd3de9a tests: added a short description to issue numbers
Martin Geisler <mg@aragost.com>
parents: 12376
diff changeset
19 Issue562: .hgignore requires newline at end:
4439
4e521a3ee5eb Test issue 562: .hgignore requires newline at end
Patrick Mezard <pmezard@gmail.com>
parents: 2009
diff changeset
20
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
21 $ touch foo
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
22 $ touch bar
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
23 $ touch baz
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
24 $ cat > makeignore.py <<EOF
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
25 > f = open(".hgignore", "w")
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
26 > f.write("ignore\n")
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
27 > f.write("foo\n")
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
28 > # No EOL here
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
29 > f.write("bar")
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
30 > f.close()
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
31 > EOF
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
32
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 35393
diff changeset
33 $ "$PYTHON" makeignore.py
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
34
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
35 Should display baz only:
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
36
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
37 $ hg status
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
38 ? baz
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
39
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
40 $ rm foo bar baz .hgignore makeignore.py
4439
4e521a3ee5eb Test issue 562: .hgignore requires newline at end
Patrick Mezard <pmezard@gmail.com>
parents: 2009
diff changeset
41
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
42 $ touch a.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
43 $ touch a.c
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
44 $ touch syntax
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
45 $ mkdir dir
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
46 $ touch dir/a.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
47 $ touch dir/b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
48 $ touch dir/c.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
49
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
50 $ hg add dir/a.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
51 $ hg commit -m 0
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
52 $ hg add dir/b.o
4439
4e521a3ee5eb Test issue 562: .hgignore requires newline at end
Patrick Mezard <pmezard@gmail.com>
parents: 2009
diff changeset
53
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
54 $ hg status
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
55 A dir/b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
56 ? a.c
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
57 ? a.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
58 ? dir/c.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
59 ? syntax
1478
e6dd91a88b57 add a test for hgignore
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
60
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
61 $ echo "*.o" > .hgignore
12366
c01dc9087d9a tests: drop a bunch of sed calls from unified tests
Matt Mackall <mpm@selenic.com>
parents: 12312
diff changeset
62 $ hg status
25869
a72e304df528 test: move ignore test run into a subdirectory
Durham Goode <durham@fb.com>
parents: 25283
diff changeset
63 abort: $TESTTMP/ignorerepo/.hgignore: invalid pattern (relre): *.o (glob)
12366
c01dc9087d9a tests: drop a bunch of sed calls from unified tests
Matt Mackall <mpm@selenic.com>
parents: 12312
diff changeset
64 [255]
1478
e6dd91a88b57 add a test for hgignore
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
65
49538
b51e5c2ab5fd rhg: add a test involving hgignore lookaround
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49152
diff changeset
66 $ echo 're:^(?!a).*\.o$' > .hgignore
b51e5c2ab5fd rhg: add a test involving hgignore lookaround
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49152
diff changeset
67 $ hg status
b51e5c2ab5fd rhg: add a test involving hgignore lookaround
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49152
diff changeset
68 A dir/b.o
b51e5c2ab5fd rhg: add a test involving hgignore lookaround
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49152
diff changeset
69 ? .hgignore
b51e5c2ab5fd rhg: add a test involving hgignore lookaround
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49152
diff changeset
70 ? a.c
b51e5c2ab5fd rhg: add a test involving hgignore lookaround
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49152
diff changeset
71 ? a.o
b51e5c2ab5fd rhg: add a test involving hgignore lookaround
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49152
diff changeset
72 ? syntax
b51e5c2ab5fd rhg: add a test involving hgignore lookaround
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49152
diff changeset
73 #if rhg
49539
8076298b795a rhg: fallback to slow path on invalid patterns in hgignore
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49538
diff changeset
74 $ hg status --config rhg.on-unsupported=abort
8076298b795a rhg: fallback to slow path on invalid patterns in hgignore
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49538
diff changeset
75 unsupported feature: Unsupported syntax regex parse error:
49538
b51e5c2ab5fd rhg: add a test involving hgignore lookaround
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49152
diff changeset
76 ^(?:^(?!a).*\.o$)
b51e5c2ab5fd rhg: add a test involving hgignore lookaround
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49152
diff changeset
77 ^^^
b51e5c2ab5fd rhg: add a test involving hgignore lookaround
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49152
diff changeset
78 error: look-around, including look-ahead and look-behind, is not supported
49539
8076298b795a rhg: fallback to slow path on invalid patterns in hgignore
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49538
diff changeset
79 [252]
49538
b51e5c2ab5fd rhg: add a test involving hgignore lookaround
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49152
diff changeset
80 #endif
b51e5c2ab5fd rhg: add a test involving hgignore lookaround
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 49152
diff changeset
81
33507
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
82 Ensure given files are relative to cwd
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
83
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
84 $ echo "dir/.*\.o" > .hgignore
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
85 $ hg status -i
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
86 I dir/c.o
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
87
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
88 $ hg debugignore dir/c.o dir/missing.o
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35230
diff changeset
89 dir/c.o is ignored
33507
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
90 (ignore rule in $TESTTMP/ignorerepo/.hgignore, line 1: 'dir/.*\.o') (glob)
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35230
diff changeset
91 dir/missing.o is ignored
33507
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
92 (ignore rule in $TESTTMP/ignorerepo/.hgignore, line 1: 'dir/.*\.o') (glob)
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
93 $ cd dir
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
94 $ hg debugignore c.o missing.o
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
95 c.o is ignored
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
96 (ignore rule in $TESTTMP/ignorerepo/.hgignore, line 1: 'dir/.*\.o') (glob)
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
97 missing.o is ignored
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
98 (ignore rule in $TESTTMP/ignorerepo/.hgignore, line 1: 'dir/.*\.o') (glob)
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
99
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
100 For icasefs, inexact matches also work, except for missing files
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
101
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
102 #if icasefs
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
103 $ hg debugignore c.O missing.O
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
104 c.o is ignored
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
105 (ignore rule in $TESTTMP/ignorerepo/.hgignore, line 1: 'dir/.*\.o') (glob)
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
106 missing.O is not ignored
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
107 #endif
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
108
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
109 $ cd ..
e9672de52a23 debugignore: eliminate inconsistencies with `hg status` (issue5222)
Matt Harbison <matt_harbison@yahoo.com>
parents: 33477
diff changeset
110
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
111 $ echo ".*\.o" > .hgignore
16487
4fe874697a4d tests: fix incorrect markup of continued lines of sh commands
Mads Kiilerich <mads@kiilerich.com>
parents: 15447
diff changeset
112 $ hg status
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
113 A dir/b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
114 ? .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
115 ? a.c
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
116 ? syntax
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
117
27326
ee2d7b5daa8a test-hgignore.t: add tests for comments
Bryan O'Sullivan <bos@serpentine.com>
parents: 25870
diff changeset
118 Ensure that comments work:
ee2d7b5daa8a test-hgignore.t: add tests for comments
Bryan O'Sullivan <bos@serpentine.com>
parents: 25870
diff changeset
119
42633
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
120 $ touch 'foo#bar' 'quux#' 'quu0#'
27381
988367ac2a2a test-hgignore: conditionalize an illegal Windows filename
Matt Harbison <matt_harbison@yahoo.com>
parents: 27326
diff changeset
121 #if no-windows
42633
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
122 $ touch 'baz\' 'baz\wat' 'ba0\#wat' 'ba1\\' 'ba1\\wat' 'quu0\'
27381
988367ac2a2a test-hgignore: conditionalize an illegal Windows filename
Matt Harbison <matt_harbison@yahoo.com>
parents: 27326
diff changeset
123 #endif
42633
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
124
27326
ee2d7b5daa8a test-hgignore.t: add tests for comments
Bryan O'Sullivan <bos@serpentine.com>
parents: 25870
diff changeset
125 $ cat <<'EOF' >> .hgignore
ee2d7b5daa8a test-hgignore.t: add tests for comments
Bryan O'Sullivan <bos@serpentine.com>
parents: 25870
diff changeset
126 > # full-line comment
ee2d7b5daa8a test-hgignore.t: add tests for comments
Bryan O'Sullivan <bos@serpentine.com>
parents: 25870
diff changeset
127 > # whitespace-only comment line
ee2d7b5daa8a test-hgignore.t: add tests for comments
Bryan O'Sullivan <bos@serpentine.com>
parents: 25870
diff changeset
128 > syntax# pattern, no whitespace, then comment
ee2d7b5daa8a test-hgignore.t: add tests for comments
Bryan O'Sullivan <bos@serpentine.com>
parents: 25870
diff changeset
129 > a.c # pattern, then whitespace, then comment
42631
24f0023bb8b1 hgignore: update \-escape test to reflect actual behavior
Yuya Nishihara <yuya@tcha.org>
parents: 41721
diff changeset
130 > baz\\# # (escaped) backslash, then comment
42632
c67e3f966867 hgignore: add a few more weird patterns to test case
Yuya Nishihara <yuya@tcha.org>
parents: 42631
diff changeset
131 > ba0\\\#w # (escaped) backslash, escaped comment character, then comment
c67e3f966867 hgignore: add a few more weird patterns to test case
Yuya Nishihara <yuya@tcha.org>
parents: 42631
diff changeset
132 > ba1\\\\# # (escaped) backslashes, then comment
27326
ee2d7b5daa8a test-hgignore.t: add tests for comments
Bryan O'Sullivan <bos@serpentine.com>
parents: 25870
diff changeset
133 > foo\#b # escaped comment character
ee2d7b5daa8a test-hgignore.t: add tests for comments
Bryan O'Sullivan <bos@serpentine.com>
parents: 25870
diff changeset
134 > quux\## escaped comment character at end of name
ee2d7b5daa8a test-hgignore.t: add tests for comments
Bryan O'Sullivan <bos@serpentine.com>
parents: 25870
diff changeset
135 > EOF
ee2d7b5daa8a test-hgignore.t: add tests for comments
Bryan O'Sullivan <bos@serpentine.com>
parents: 25870
diff changeset
136 $ hg status
ee2d7b5daa8a test-hgignore.t: add tests for comments
Bryan O'Sullivan <bos@serpentine.com>
parents: 25870
diff changeset
137 A dir/b.o
ee2d7b5daa8a test-hgignore.t: add tests for comments
Bryan O'Sullivan <bos@serpentine.com>
parents: 25870
diff changeset
138 ? .hgignore
42633
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
139 ? quu0#
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
140 ? quu0\ (no-windows !)
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
141
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
142 $ cat <<'EOF' > .hgignore
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
143 > .*\.o
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
144 > syntax: glob
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
145 > syntax# pattern, no whitespace, then comment
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
146 > a.c # pattern, then whitespace, then comment
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
147 > baz\\#* # (escaped) backslash, then comment
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
148 > ba0\\\#w* # (escaped) backslash, escaped comment character, then comment
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
149 > ba1\\\\#* # (escaped) backslashes, then comment
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
150 > foo\#b* # escaped comment character
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
151 > quux\## escaped comment character at end of name
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
152 > quu0[\#]# escaped comment character inside [...]
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
153 > EOF
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
154 $ hg status
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
155 A dir/b.o
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
156 ? .hgignore
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
157 ? ba1\\wat (no-windows !)
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
158 ? baz\wat (no-windows !)
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
159 ? quu0\ (no-windows !)
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
160
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
161 $ rm 'foo#bar' 'quux#' 'quu0#'
27381
988367ac2a2a test-hgignore: conditionalize an illegal Windows filename
Matt Harbison <matt_harbison@yahoo.com>
parents: 27326
diff changeset
162 #if no-windows
42633
f78f305454fd hgignore: add escape syntax test for glob patterns
Yuya Nishihara <yuya@tcha.org>
parents: 42632
diff changeset
163 $ rm 'baz\' 'baz\wat' 'ba0\#wat' 'ba1\\' 'ba1\\wat' 'quu0\'
27381
988367ac2a2a test-hgignore: conditionalize an illegal Windows filename
Matt Harbison <matt_harbison@yahoo.com>
parents: 27326
diff changeset
164 #endif
27326
ee2d7b5daa8a test-hgignore.t: add tests for comments
Bryan O'Sullivan <bos@serpentine.com>
parents: 25870
diff changeset
165
33477
cc4632679cf9 tests: fix an incorrect description in test-ignore.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 33214
diff changeset
166 Check that '^\.' does not ignore the root directory:
1478
e6dd91a88b57 add a test for hgignore
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
167
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
168 $ echo "^\." > .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
169 $ hg status
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
170 A dir/b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
171 ? a.c
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
172 ? a.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
173 ? dir/c.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
174 ? syntax
1478
e6dd91a88b57 add a test for hgignore
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
175
23628
7d7a4848fff4 test-hgignore: add testing for ui.ignore
Siddharth Agarwal <sid0@fb.com>
parents: 21815
diff changeset
176 Test that patterns from ui.ignore options are read:
7d7a4848fff4 test-hgignore: add testing for ui.ignore
Siddharth Agarwal <sid0@fb.com>
parents: 21815
diff changeset
177
7d7a4848fff4 test-hgignore: add testing for ui.ignore
Siddharth Agarwal <sid0@fb.com>
parents: 21815
diff changeset
178 $ echo > .hgignore
7d7a4848fff4 test-hgignore: add testing for ui.ignore
Siddharth Agarwal <sid0@fb.com>
parents: 21815
diff changeset
179 $ cat >> $HGRCPATH << EOF
7d7a4848fff4 test-hgignore: add testing for ui.ignore
Siddharth Agarwal <sid0@fb.com>
parents: 21815
diff changeset
180 > [ui]
25869
a72e304df528 test: move ignore test run into a subdirectory
Durham Goode <durham@fb.com>
parents: 25283
diff changeset
181 > ignore.other = $TESTTMP/ignorerepo/.hg/testhgignore
23628
7d7a4848fff4 test-hgignore: add testing for ui.ignore
Siddharth Agarwal <sid0@fb.com>
parents: 21815
diff changeset
182 > EOF
7d7a4848fff4 test-hgignore: add testing for ui.ignore
Siddharth Agarwal <sid0@fb.com>
parents: 21815
diff changeset
183 $ echo "glob:**.o" > .hg/testhgignore
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
184 $ hg status
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
185 A dir/b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
186 ? .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
187 ? a.c
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
188 ? syntax
1478
e6dd91a88b57 add a test for hgignore
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
189
23628
7d7a4848fff4 test-hgignore: add testing for ui.ignore
Siddharth Agarwal <sid0@fb.com>
parents: 21815
diff changeset
190 empty out testhgignore
7d7a4848fff4 test-hgignore: add testing for ui.ignore
Siddharth Agarwal <sid0@fb.com>
parents: 21815
diff changeset
191 $ echo > .hg/testhgignore
23629
a04c7b74b3d5 ignore: resolve ignore files relative to repo root (issue4473) (BC)
Siddharth Agarwal <sid0@fb.com>
parents: 23628
diff changeset
192
a04c7b74b3d5 ignore: resolve ignore files relative to repo root (issue4473) (BC)
Siddharth Agarwal <sid0@fb.com>
parents: 23628
diff changeset
193 Test relative ignore path (issue4473):
a04c7b74b3d5 ignore: resolve ignore files relative to repo root (issue4473) (BC)
Siddharth Agarwal <sid0@fb.com>
parents: 23628
diff changeset
194
a04c7b74b3d5 ignore: resolve ignore files relative to repo root (issue4473) (BC)
Siddharth Agarwal <sid0@fb.com>
parents: 23628
diff changeset
195 $ cat >> $HGRCPATH << EOF
a04c7b74b3d5 ignore: resolve ignore files relative to repo root (issue4473) (BC)
Siddharth Agarwal <sid0@fb.com>
parents: 23628
diff changeset
196 > [ui]
a04c7b74b3d5 ignore: resolve ignore files relative to repo root (issue4473) (BC)
Siddharth Agarwal <sid0@fb.com>
parents: 23628
diff changeset
197 > ignore.relative = .hg/testhgignorerel
a04c7b74b3d5 ignore: resolve ignore files relative to repo root (issue4473) (BC)
Siddharth Agarwal <sid0@fb.com>
parents: 23628
diff changeset
198 > EOF
a04c7b74b3d5 ignore: resolve ignore files relative to repo root (issue4473) (BC)
Siddharth Agarwal <sid0@fb.com>
parents: 23628
diff changeset
199 $ echo "glob:*.o" > .hg/testhgignorerel
a04c7b74b3d5 ignore: resolve ignore files relative to repo root (issue4473) (BC)
Siddharth Agarwal <sid0@fb.com>
parents: 23628
diff changeset
200 $ cd dir
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
201 $ hg status
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
202 A dir/b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
203 ? .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
204 ? a.c
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
205 ? syntax
42862
96ddf83fc267 tests: show the pattern generated for a relative glob
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 42633
diff changeset
206 $ hg debugignore
42864
72890d8f9860 match: simplify the regexps created for glob patterns
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 42862
diff changeset
207 <includematcher includes='.*\\.o(?:/|$)'>
6479
31abcae33b4f dirstate: do not ignore current directory '.' (issue 1078)
Patrick Mezard <pmezard@gmail.com>
parents: 5029
diff changeset
208
23629
a04c7b74b3d5 ignore: resolve ignore files relative to repo root (issue4473) (BC)
Siddharth Agarwal <sid0@fb.com>
parents: 23628
diff changeset
209 $ cd ..
a04c7b74b3d5 ignore: resolve ignore files relative to repo root (issue4473) (BC)
Siddharth Agarwal <sid0@fb.com>
parents: 23628
diff changeset
210 $ echo > .hg/testhgignorerel
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
211 $ echo "syntax: glob" > .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
212 $ echo "re:.*\.o" >> .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
213 $ hg status
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
214 A dir/b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
215 ? .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
216 ? a.c
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
217 ? syntax
5029
ac97e065cfc7 Fix re: and glob: patterns in .hgignore (reported by Brad Schick)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4439
diff changeset
218
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
219 $ echo "syntax: invalid" > .hgignore
12366
c01dc9087d9a tests: drop a bunch of sed calls from unified tests
Matt Mackall <mpm@selenic.com>
parents: 12312
diff changeset
220 $ hg status
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35230
diff changeset
221 $TESTTMP/ignorerepo/.hgignore: ignoring invalid syntax 'invalid'
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
222 A dir/b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
223 ? .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
224 ? a.c
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
225 ? a.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
226 ? dir/c.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
227 ? syntax
1478
e6dd91a88b57 add a test for hgignore
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
228
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
229 $ echo "syntax: glob" > .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
230 $ echo "*.o" >> .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
231 $ hg status
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
232 A dir/b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
233 ? .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
234 ? a.c
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
235 ? syntax
1478
e6dd91a88b57 add a test for hgignore
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
236
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
237 $ echo "relglob:syntax*" > .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
238 $ hg status
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
239 A dir/b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
240 ? .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
241 ? a.c
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
242 ? a.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
243 ? dir/c.o
1478
e6dd91a88b57 add a test for hgignore
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff changeset
244
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
245 $ echo "relglob:*" > .hgignore
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
246 $ hg status
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
247 A dir/b.o
1491
91c0e8d7ddcf fix a bug in dirstate.changes when cwd != repo.root
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1478
diff changeset
248
12312
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
249 $ cd dir
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
250 $ hg status .
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
251 A b.o
83a310f2f14a tests: unify test-hgignore
Adrian Buehlmann <adrian@cadifra.com>
parents: 6479
diff changeset
252
13396
3e66eec9a814 add debugignore which yields the combined ignore patten of the .hgignore files
jfh <jason@jasonfharris.com>
parents: 12640
diff changeset
253 $ hg debugignore
42864
72890d8f9860 match: simplify the regexps created for glob patterns
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents: 42862
diff changeset
254 <includematcher includes='.*(?:/|$)'>
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16487
diff changeset
255
27671
067d87feeb11 debugignore: find out if a file is being ignored
Laurent Charignon <lcharignon@fb.com>
parents: 27381
diff changeset
256 $ hg debugignore b.o
067d87feeb11 debugignore: find out if a file is being ignored
Laurent Charignon <lcharignon@fb.com>
parents: 27381
diff changeset
257 b.o is ignored
27757
6ff556ef5a46 test-hgignore: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 27672
diff changeset
258 (ignore rule in $TESTTMP/ignorerepo/.hgignore, line 1: '*') (glob)
27671
067d87feeb11 debugignore: find out if a file is being ignored
Laurent Charignon <lcharignon@fb.com>
parents: 27381
diff changeset
259
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16487
diff changeset
260 $ cd ..
19128
f4930b533d55 hgignore: fix regression with hgignore directory matches (issue3921)
Durham Goode <durham@fb.com>
parents: 16913
diff changeset
261
f4930b533d55 hgignore: fix regression with hgignore directory matches (issue3921)
Durham Goode <durham@fb.com>
parents: 16913
diff changeset
262 Check patterns that match only the directory
f4930b533d55 hgignore: fix regression with hgignore directory matches (issue3921)
Durham Goode <durham@fb.com>
parents: 16913
diff changeset
263
33214
7367b76ef75c tests: add line specific for testing with fsmonitor
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32940
diff changeset
264 "(fsmonitor !)" below assumes that fsmonitor is enabled with
7367b76ef75c tests: add line specific for testing with fsmonitor
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32940
diff changeset
265 "walk_on_invalidate = false" (default), which doesn't involve
7367b76ef75c tests: add line specific for testing with fsmonitor
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32940
diff changeset
266 re-walking whole repository at detection of .hgignore change.
7367b76ef75c tests: add line specific for testing with fsmonitor
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32940
diff changeset
267
19128
f4930b533d55 hgignore: fix regression with hgignore directory matches (issue3921)
Durham Goode <durham@fb.com>
parents: 16913
diff changeset
268 $ echo "^dir\$" > .hgignore
f4930b533d55 hgignore: fix regression with hgignore directory matches (issue3921)
Durham Goode <durham@fb.com>
parents: 16913
diff changeset
269 $ hg status
f4930b533d55 hgignore: fix regression with hgignore directory matches (issue3921)
Durham Goode <durham@fb.com>
parents: 16913
diff changeset
270 A dir/b.o
f4930b533d55 hgignore: fix regression with hgignore directory matches (issue3921)
Durham Goode <durham@fb.com>
parents: 16913
diff changeset
271 ? .hgignore
f4930b533d55 hgignore: fix regression with hgignore directory matches (issue3921)
Durham Goode <durham@fb.com>
parents: 16913
diff changeset
272 ? a.c
f4930b533d55 hgignore: fix regression with hgignore directory matches (issue3921)
Durham Goode <durham@fb.com>
parents: 16913
diff changeset
273 ? a.o
33214
7367b76ef75c tests: add line specific for testing with fsmonitor
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 32940
diff changeset
274 ? dir/c.o (fsmonitor !)
19128
f4930b533d55 hgignore: fix regression with hgignore directory matches (issue3921)
Durham Goode <durham@fb.com>
parents: 16913
diff changeset
275 ? syntax
21815
a4b67bf1f0a5 match: make glob '**/' match the empty string
Siddharth Agarwal <sid0@fb.com>
parents: 19128
diff changeset
276
a4b67bf1f0a5 match: make glob '**/' match the empty string
Siddharth Agarwal <sid0@fb.com>
parents: 19128
diff changeset
277 Check recursive glob pattern matches no directories (dir/**/c.o matches dir/c.o)
a4b67bf1f0a5 match: make glob '**/' match the empty string
Siddharth Agarwal <sid0@fb.com>
parents: 19128
diff changeset
278
a4b67bf1f0a5 match: make glob '**/' match the empty string
Siddharth Agarwal <sid0@fb.com>
parents: 19128
diff changeset
279 $ echo "syntax: glob" > .hgignore
a4b67bf1f0a5 match: make glob '**/' match the empty string
Siddharth Agarwal <sid0@fb.com>
parents: 19128
diff changeset
280 $ echo "dir/**/c.o" >> .hgignore
a4b67bf1f0a5 match: make glob '**/' match the empty string
Siddharth Agarwal <sid0@fb.com>
parents: 19128
diff changeset
281 $ touch dir/c.o
a4b67bf1f0a5 match: make glob '**/' match the empty string
Siddharth Agarwal <sid0@fb.com>
parents: 19128
diff changeset
282 $ mkdir dir/subdir
a4b67bf1f0a5 match: make glob '**/' match the empty string
Siddharth Agarwal <sid0@fb.com>
parents: 19128
diff changeset
283 $ touch dir/subdir/c.o
a4b67bf1f0a5 match: make glob '**/' match the empty string
Siddharth Agarwal <sid0@fb.com>
parents: 19128
diff changeset
284 $ hg status
a4b67bf1f0a5 match: make glob '**/' match the empty string
Siddharth Agarwal <sid0@fb.com>
parents: 19128
diff changeset
285 A dir/b.o
a4b67bf1f0a5 match: make glob '**/' match the empty string
Siddharth Agarwal <sid0@fb.com>
parents: 19128
diff changeset
286 ? .hgignore
a4b67bf1f0a5 match: make glob '**/' match the empty string
Siddharth Agarwal <sid0@fb.com>
parents: 19128
diff changeset
287 ? a.c
a4b67bf1f0a5 match: make glob '**/' match the empty string
Siddharth Agarwal <sid0@fb.com>
parents: 19128
diff changeset
288 ? a.o
a4b67bf1f0a5 match: make glob '**/' match the empty string
Siddharth Agarwal <sid0@fb.com>
parents: 19128
diff changeset
289 ? syntax
27671
067d87feeb11 debugignore: find out if a file is being ignored
Laurent Charignon <lcharignon@fb.com>
parents: 27381
diff changeset
290 $ hg debugignore a.c
067d87feeb11 debugignore: find out if a file is being ignored
Laurent Charignon <lcharignon@fb.com>
parents: 27381
diff changeset
291 a.c is not ignored
067d87feeb11 debugignore: find out if a file is being ignored
Laurent Charignon <lcharignon@fb.com>
parents: 27381
diff changeset
292 $ hg debugignore dir/c.o
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35230
diff changeset
293 dir/c.o is ignored
27757
6ff556ef5a46 test-hgignore: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 27672
diff changeset
294 (ignore rule in $TESTTMP/ignorerepo/.hgignore, line 2: 'dir/**/c.o') (glob)
25215
4040e06e9b99 match: add 'include:' syntax
Durham Goode <durham@fb.com>
parents: 23629
diff changeset
295
41282
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
296 Check rooted globs
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
297
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
298 $ hg purge --all --config extensions.purge=
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
299 $ echo "syntax: rootglob" > .hgignore
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
300 $ echo "a/*.ext" >> .hgignore
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
301 $ for p in a b/a aa; do mkdir -p $p; touch $p/b.ext; done
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
302 $ hg status -A 'set:**.ext'
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
303 ? aa/b.ext
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
304 ? b/a/b.ext
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
305 I a/b.ext
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
306
25215
4040e06e9b99 match: add 'include:' syntax
Durham Goode <durham@fb.com>
parents: 23629
diff changeset
307 Check using 'include:' in ignore file
4040e06e9b99 match: add 'include:' syntax
Durham Goode <durham@fb.com>
parents: 23629
diff changeset
308
4040e06e9b99 match: add 'include:' syntax
Durham Goode <durham@fb.com>
parents: 23629
diff changeset
309 $ hg purge --all --config extensions.purge=
4040e06e9b99 match: add 'include:' syntax
Durham Goode <durham@fb.com>
parents: 23629
diff changeset
310 $ touch foo.included
4040e06e9b99 match: add 'include:' syntax
Durham Goode <durham@fb.com>
parents: 23629
diff changeset
311
4040e06e9b99 match: add 'include:' syntax
Durham Goode <durham@fb.com>
parents: 23629
diff changeset
312 $ echo ".*.included" > otherignore
4040e06e9b99 match: add 'include:' syntax
Durham Goode <durham@fb.com>
parents: 23629
diff changeset
313 $ hg status -I "include:otherignore"
4040e06e9b99 match: add 'include:' syntax
Durham Goode <durham@fb.com>
parents: 23629
diff changeset
314 ? foo.included
4040e06e9b99 match: add 'include:' syntax
Durham Goode <durham@fb.com>
parents: 23629
diff changeset
315
4040e06e9b99 match: add 'include:' syntax
Durham Goode <durham@fb.com>
parents: 23629
diff changeset
316 $ echo "include:otherignore" >> .hgignore
4040e06e9b99 match: add 'include:' syntax
Durham Goode <durham@fb.com>
parents: 23629
diff changeset
317 $ hg status
4040e06e9b99 match: add 'include:' syntax
Durham Goode <durham@fb.com>
parents: 23629
diff changeset
318 A dir/b.o
4040e06e9b99 match: add 'include:' syntax
Durham Goode <durham@fb.com>
parents: 23629
diff changeset
319 ? .hgignore
4040e06e9b99 match: add 'include:' syntax
Durham Goode <durham@fb.com>
parents: 23629
diff changeset
320 ? otherignore
4040e06e9b99 match: add 'include:' syntax
Durham Goode <durham@fb.com>
parents: 23629
diff changeset
321
4040e06e9b99 match: add 'include:' syntax
Durham Goode <durham@fb.com>
parents: 23629
diff changeset
322 Check recursive uses of 'include:'
4040e06e9b99 match: add 'include:' syntax
Durham Goode <durham@fb.com>
parents: 23629
diff changeset
323
25870
3de48ff62733 ignore: fix include: rules depending on current directory (issue4759)
Durham Goode <durham@fb.com>
parents: 25869
diff changeset
324 $ echo "include:nested/ignore" >> otherignore
41282
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
325 $ mkdir nested nested/more
25870
3de48ff62733 ignore: fix include: rules depending on current directory (issue4759)
Durham Goode <durham@fb.com>
parents: 25869
diff changeset
326 $ echo "glob:*ignore" > nested/ignore
41282
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
327 $ echo "rootglob:a" >> nested/ignore
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
328 $ touch a nested/a nested/more/a
25215
4040e06e9b99 match: add 'include:' syntax
Durham Goode <durham@fb.com>
parents: 23629
diff changeset
329 $ hg status
4040e06e9b99 match: add 'include:' syntax
Durham Goode <durham@fb.com>
parents: 23629
diff changeset
330 A dir/b.o
41282
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
331 ? nested/a
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
332 ? nested/more/a
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
333 $ rm a nested/a nested/more/a
25216
dc562165044a ignore: use 'include:' rules instead of custom syntax
Durham Goode <durham@fb.com>
parents: 25215
diff changeset
334
25283
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
335 $ cp otherignore goodignore
25216
dc562165044a ignore: use 'include:' rules instead of custom syntax
Durham Goode <durham@fb.com>
parents: 25215
diff changeset
336 $ echo "include:badignore" >> otherignore
dc562165044a ignore: use 'include:' rules instead of custom syntax
Durham Goode <durham@fb.com>
parents: 25215
diff changeset
337 $ hg status
35230
feecfefeba25 tests: add a substitution for ENOENT/ERROR_FILE_NOT_FOUND messages
Matt Harbison <matt_harbison@yahoo.com>
parents: 33507
diff changeset
338 skipping unreadable pattern file 'badignore': $ENOENT$
25216
dc562165044a ignore: use 'include:' rules instead of custom syntax
Durham Goode <durham@fb.com>
parents: 25215
diff changeset
339 A dir/b.o
25283
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
340
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
341 $ mv goodignore otherignore
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
342
25870
3de48ff62733 ignore: fix include: rules depending on current directory (issue4759)
Durham Goode <durham@fb.com>
parents: 25869
diff changeset
343 Check using 'include:' while in a non-root directory
3de48ff62733 ignore: fix include: rules depending on current directory (issue4759)
Durham Goode <durham@fb.com>
parents: 25869
diff changeset
344
3de48ff62733 ignore: fix include: rules depending on current directory (issue4759)
Durham Goode <durham@fb.com>
parents: 25869
diff changeset
345 $ cd ..
3de48ff62733 ignore: fix include: rules depending on current directory (issue4759)
Durham Goode <durham@fb.com>
parents: 25869
diff changeset
346 $ hg -R ignorerepo status
3de48ff62733 ignore: fix include: rules depending on current directory (issue4759)
Durham Goode <durham@fb.com>
parents: 25869
diff changeset
347 A dir/b.o
3de48ff62733 ignore: fix include: rules depending on current directory (issue4759)
Durham Goode <durham@fb.com>
parents: 25869
diff changeset
348 $ cd ignorerepo
3de48ff62733 ignore: fix include: rules depending on current directory (issue4759)
Durham Goode <durham@fb.com>
parents: 25869
diff changeset
349
25283
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
350 Check including subincludes
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
351
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
352 $ hg revert -q --all
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
353 $ hg purge --all --config extensions.purge=
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
354 $ echo ".hgignore" > .hgignore
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
355 $ mkdir dir1 dir2
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
356 $ touch dir1/file1 dir1/file2 dir2/file1 dir2/file2
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
357 $ echo "subinclude:dir2/.hgignore" >> .hgignore
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
358 $ echo "glob:file*2" > dir2/.hgignore
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
359 $ hg status
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
360 ? dir1/file1
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
361 ? dir1/file2
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
362 ? dir2/file1
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
363
41282
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
364 Check including subincludes with other patterns
25283
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
365
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
366 $ echo "subinclude:dir1/.hgignore" >> .hgignore
41282
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
367
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
368 $ mkdir dir1/subdir
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
369 $ touch dir1/subdir/file1
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
370 $ echo "rootglob:f?le1" > dir1/.hgignore
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
371 $ hg status
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
372 ? dir1/file2
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
373 ? dir1/subdir/file1
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
374 ? dir2/file1
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
375 $ rm dir1/subdir/file1
4fab8a7d2d72 match: support rooted globs in hgignore
Valentin Gatien-Baron <vgatien-baron@janestreet.com>
parents: 40782
diff changeset
376
25283
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
377 $ echo "regexp:f.le1" > dir1/.hgignore
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
378 $ hg status
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
379 ? dir1/file2
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
380 ? dir2/file1
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
381
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
382 Check multiple levels of sub-ignores
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
383
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
384 $ touch dir1/subdir/subfile1 dir1/subdir/subfile3 dir1/subdir/subfile4
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
385 $ echo "subinclude:subdir/.hgignore" >> dir1/.hgignore
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
386 $ echo "glob:subfil*3" >> dir1/subdir/.hgignore
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
387
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
388 $ hg status
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
389 ? dir1/file2
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
390 ? dir1/subdir/subfile4
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
391 ? dir2/file1
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
392
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
393 Check include subignore at the same level
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
394
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
395 $ mv dir1/subdir/.hgignore dir1/.hgignoretwo
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
396 $ echo "regexp:f.le1" > dir1/.hgignore
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
397 $ echo "subinclude:.hgignoretwo" >> dir1/.hgignore
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
398 $ echo "glob:file*2" > dir1/.hgignoretwo
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
399
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
400 $ hg status | grep file2
19d0e5efa6ca match: enable 'subinclude:' syntax
Durham Goode <durham@fb.com>
parents: 25216
diff changeset
401 [1]
27671
067d87feeb11 debugignore: find out if a file is being ignored
Laurent Charignon <lcharignon@fb.com>
parents: 27381
diff changeset
402 $ hg debugignore dir1/file2
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35230
diff changeset
403 dir1/file2 is ignored
27672
f2da9bb87ae0 debugignore: find out why a file is being ignored (issue4856)
Laurent Charignon <lcharignon@fb.com>
parents: 27671
diff changeset
404 (ignore rule in dir2/.hgignore, line 1: 'file*2')
28054
8515b813976b debugignore: normalize the file before testing dirstate._ignore()
Matt Harbison <matt_harbison@yahoo.com>
parents: 27757
diff changeset
405
8515b813976b debugignore: normalize the file before testing dirstate._ignore()
Matt Harbison <matt_harbison@yahoo.com>
parents: 27757
diff changeset
406 #if windows
8515b813976b debugignore: normalize the file before testing dirstate._ignore()
Matt Harbison <matt_harbison@yahoo.com>
parents: 27757
diff changeset
407
8515b813976b debugignore: normalize the file before testing dirstate._ignore()
Matt Harbison <matt_harbison@yahoo.com>
parents: 27757
diff changeset
408 Windows paths are accepted on input
8515b813976b debugignore: normalize the file before testing dirstate._ignore()
Matt Harbison <matt_harbison@yahoo.com>
parents: 27757
diff changeset
409
8515b813976b debugignore: normalize the file before testing dirstate._ignore()
Matt Harbison <matt_harbison@yahoo.com>
parents: 27757
diff changeset
410 $ rm dir1/.hgignore
8515b813976b debugignore: normalize the file before testing dirstate._ignore()
Matt Harbison <matt_harbison@yahoo.com>
parents: 27757
diff changeset
411 $ echo "dir1/file*" >> .hgignore
8515b813976b debugignore: normalize the file before testing dirstate._ignore()
Matt Harbison <matt_harbison@yahoo.com>
parents: 27757
diff changeset
412 $ hg debugignore "dir1\file2"
41721
eb8a8af4cbd0 tests: correct the remaining fallout from recent path style changes on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 41282
diff changeset
413 dir1/file2 is ignored
28054
8515b813976b debugignore: normalize the file before testing dirstate._ignore()
Matt Harbison <matt_harbison@yahoo.com>
parents: 27757
diff changeset
414 (ignore rule in $TESTTMP\ignorerepo\.hgignore, line 4: 'dir1/file*')
8515b813976b debugignore: normalize the file before testing dirstate._ignore()
Matt Harbison <matt_harbison@yahoo.com>
parents: 27757
diff changeset
415 $ hg up -qC .
8515b813976b debugignore: normalize the file before testing dirstate._ignore()
Matt Harbison <matt_harbison@yahoo.com>
parents: 27757
diff changeset
416
8515b813976b debugignore: normalize the file before testing dirstate._ignore()
Matt Harbison <matt_harbison@yahoo.com>
parents: 27757
diff changeset
417 #endif
47409
0ef8231e413f dirstate-v2: Store a hash of ignore patterns (.hgignore)
Simon Sapin <simon.sapin@octobus.net>
parents: 47281
diff changeset
418
48223
b4f83c9e7905 dirstate-v2: Add support when Rust is not enabled
Simon Sapin <simon.sapin@octobus.net>
parents: 48068
diff changeset
419 #if dirstate-v2 rust
47409
0ef8231e413f dirstate-v2: Store a hash of ignore patterns (.hgignore)
Simon Sapin <simon.sapin@octobus.net>
parents: 47281
diff changeset
420
47674
ff97e793ed36 dirstate-v2: Introduce a docket file
Simon Sapin <simon.sapin@octobus.net>
parents: 47476
diff changeset
421 Check the hash of ignore patterns written in the dirstate
48223
b4f83c9e7905 dirstate-v2: Add support when Rust is not enabled
Simon Sapin <simon.sapin@octobus.net>
parents: 48068
diff changeset
422 This is an optimization that is only relevant when using the Rust extensions
47409
0ef8231e413f dirstate-v2: Store a hash of ignore patterns (.hgignore)
Simon Sapin <simon.sapin@octobus.net>
parents: 47281
diff changeset
423
49558
363923bd51cd dirstate-v2: hash the source of the ignore patterns as well
Raphaël Gomès <rgomes@octobus.net>
parents: 49557
diff changeset
424 $ cat_filename_and_hash () {
363923bd51cd dirstate-v2: hash the source of the ignore patterns as well
Raphaël Gomès <rgomes@octobus.net>
parents: 49557
diff changeset
425 > for i in "$@"; do
363923bd51cd dirstate-v2: hash the source of the ignore patterns as well
Raphaël Gomès <rgomes@octobus.net>
parents: 49557
diff changeset
426 > printf "$i "
363923bd51cd dirstate-v2: hash the source of the ignore patterns as well
Raphaël Gomès <rgomes@octobus.net>
parents: 49557
diff changeset
427 > cat "$i" | "$TESTDIR"/f --raw-sha1 | sed 's/^raw-sha1=//'
363923bd51cd dirstate-v2: hash the source of the ignore patterns as well
Raphaël Gomès <rgomes@octobus.net>
parents: 49557
diff changeset
428 > done
363923bd51cd dirstate-v2: hash the source of the ignore patterns as well
Raphaël Gomès <rgomes@octobus.net>
parents: 49557
diff changeset
429 > }
47409
0ef8231e413f dirstate-v2: Store a hash of ignore patterns (.hgignore)
Simon Sapin <simon.sapin@octobus.net>
parents: 47281
diff changeset
430 $ hg status > /dev/null
49558
363923bd51cd dirstate-v2: hash the source of the ignore patterns as well
Raphaël Gomès <rgomes@octobus.net>
parents: 49557
diff changeset
431 $ cat_filename_and_hash .hg/testhgignore .hg/testhgignorerel .hgignore dir2/.hgignore dir1/.hgignore dir1/.hgignoretwo | $TESTDIR/f --sha1
363923bd51cd dirstate-v2: hash the source of the ignore patterns as well
Raphaël Gomès <rgomes@octobus.net>
parents: 49557
diff changeset
432 sha1=c0beb296395d48ced8e14f39009c4ea6e409bfe6
49152
eaaf4f98c9f1 dirstate-v2: add flag to `debugstate` to print docket information
Raphaël Gomès <rgomes@octobus.net>
parents: 48681
diff changeset
433 $ hg debugstate --docket | grep ignore
49558
363923bd51cd dirstate-v2: hash the source of the ignore patterns as well
Raphaël Gomès <rgomes@octobus.net>
parents: 49557
diff changeset
434 ignore pattern hash: c0beb296395d48ced8e14f39009c4ea6e409bfe6
47409
0ef8231e413f dirstate-v2: Store a hash of ignore patterns (.hgignore)
Simon Sapin <simon.sapin@octobus.net>
parents: 47281
diff changeset
435
0ef8231e413f dirstate-v2: Store a hash of ignore patterns (.hgignore)
Simon Sapin <simon.sapin@octobus.net>
parents: 47281
diff changeset
436 $ echo rel > .hg/testhgignorerel
0ef8231e413f dirstate-v2: Store a hash of ignore patterns (.hgignore)
Simon Sapin <simon.sapin@octobus.net>
parents: 47281
diff changeset
437 $ hg status > /dev/null
49558
363923bd51cd dirstate-v2: hash the source of the ignore patterns as well
Raphaël Gomès <rgomes@octobus.net>
parents: 49557
diff changeset
438 $ cat_filename_and_hash .hg/testhgignore .hg/testhgignorerel .hgignore dir2/.hgignore dir1/.hgignore dir1/.hgignoretwo | $TESTDIR/f --sha1
363923bd51cd dirstate-v2: hash the source of the ignore patterns as well
Raphaël Gomès <rgomes@octobus.net>
parents: 49557
diff changeset
439 sha1=b8e63d3428ec38abc68baa27631516d5ec46b7fa
49152
eaaf4f98c9f1 dirstate-v2: add flag to `debugstate` to print docket information
Raphaël Gomès <rgomes@octobus.net>
parents: 48681
diff changeset
440 $ hg debugstate --docket | grep ignore
49558
363923bd51cd dirstate-v2: hash the source of the ignore patterns as well
Raphaël Gomès <rgomes@octobus.net>
parents: 49557
diff changeset
441 ignore pattern hash: b8e63d3428ec38abc68baa27631516d5ec46b7fa
49557
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
442 $ cd ..
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
443
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
444 Check that the hash depends on the source of the hgignore patterns
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
445 (otherwise the context is lost and things like subinclude are cached improperly)
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
446
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
447 $ hg init ignore-collision
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
448 $ cd ignore-collision
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
449 $ echo > .hg/testhgignorerel
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
450
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
451 $ mkdir dir1/ dir1/subdir
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
452 $ touch dir1/subdir/f dir1/subdir/ignored1
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
453 $ echo 'ignored1' > dir1/.hgignore
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
454
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
455 $ mkdir dir2 dir2/subdir
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
456 $ touch dir2/subdir/f dir2/subdir/ignored2
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
457 $ echo 'ignored2' > dir2/.hgignore
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
458 $ echo 'subinclude:dir2/.hgignore' >> .hgignore
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
459 $ echo 'subinclude:dir1/.hgignore' >> .hgignore
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
460
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
461 $ hg commit -Aqm_
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
462
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
463 $ > dir1/.hgignore
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
464 $ echo 'ignored' > dir2/.hgignore
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
465 $ echo 'ignored1' >> dir2/.hgignore
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
466 $ hg status
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
467 M dir1/.hgignore
ca19335e86e5 dirstate-v2: add test that shows a collision in ignore patterns hash
Raphaël Gomès <rgomes@octobus.net>
parents: 49539
diff changeset
468 M dir2/.hgignore
49558
363923bd51cd dirstate-v2: hash the source of the ignore patterns as well
Raphaël Gomès <rgomes@octobus.net>
parents: 49557
diff changeset
469 ? dir1/subdir/ignored1
47409
0ef8231e413f dirstate-v2: Store a hash of ignore patterns (.hgignore)
Simon Sapin <simon.sapin@octobus.net>
parents: 47281
diff changeset
470
0ef8231e413f dirstate-v2: Store a hash of ignore patterns (.hgignore)
Simon Sapin <simon.sapin@octobus.net>
parents: 47281
diff changeset
471 #endif