annotate tests/test-fileset.t @ 23603:d74eb8d477d5

memctx: calculate manifest more efficiently Before this patch, "memctx._manifest" updates all entries in the (parent) manifest. But this is inefficiency, because almost all files may be clean in that context. On the other hand, just updating entries for changed "files" specified at construction causes unexpected abortion, when there is at least one newly removed file (see issue4470 for detail). To calculate manifest more efficiently, this patch replaces "pman.iteritems()" for the loop by "self._status.modified" to avoid updating entries for clean or removed files Examination of removal is also omitted, because removed files aren't treated in this loop (= "self[f]" returns not None always).
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Fri, 19 Dec 2014 00:11:56 +0900
parents b081decd9062
children caa6b6c65dc3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17362
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
1 $ fileset() {
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
2 > hg debugfileset "$@"
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
3 > }
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
4
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
5 $ hg init repo
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
6 $ cd repo
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
7 $ echo a > a1
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
8 $ echo a > a2
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
9 $ echo b > b1
17364
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
10 $ echo b > b2
17362
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
11 $ hg ci -Am addfiles
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
12 adding a1
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
13 adding a2
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
14 adding b1
17364
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
15 adding b2
17362
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
16
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
17 Test operators and basic patterns
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
18
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
19 $ fileset a1
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
20 a1
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
21 $ fileset 'a*'
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
22 a1
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
23 a2
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
24 $ fileset '"re:a\d"'
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
25 a1
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
26 a2
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
27 $ fileset 'a1 or a2'
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
28 a1
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
29 a2
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
30 $ fileset 'a1 | a2'
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
31 a1
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
32 a2
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
33 $ fileset 'a* and "*1"'
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
34 a1
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
35 $ fileset 'a* & "*1"'
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
36 a1
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
37 $ fileset 'not (r"a*")'
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
38 b1
17364
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
39 b2
17362
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
40 $ fileset '! ("a*")'
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
41 b1
17364
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
42 b2
17363
5d9e2031c0b1 fileset: actually implement 'minusset'
Patrick Mezard <patrick@mezard.eu>
parents: 17362
diff changeset
43 $ fileset 'a* - a1'
5d9e2031c0b1 fileset: actually implement 'minusset'
Patrick Mezard <patrick@mezard.eu>
parents: 17362
diff changeset
44 a2
19470
19ac0d8ee9a2 fileset: handle underbar in symbols
Matt Mackall <mpm@selenic.com>
parents: 18842
diff changeset
45 $ fileset 'a_b'
17362
bd867a9ca510 tests: test filesets with test-fileset.t
Patrick Mezard <patrick@mezard.eu>
parents:
diff changeset
46
17364
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
47 Test files status
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
48
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
49 $ rm a1
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
50 $ hg rm a2
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
51 $ echo b >> b2
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
52 $ hg cp b1 c1
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
53 $ echo c > c2
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
54 $ echo c > c3
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
55 $ cat > .hgignore <<EOF
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
56 > \.hgignore
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
57 > 2$
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
58 > EOF
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
59 $ fileset 'modified()'
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
60 b2
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
61 $ fileset 'added()'
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
62 c1
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
63 $ fileset 'removed()'
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
64 a2
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
65 $ fileset 'deleted()'
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
66 a1
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
67 $ fileset 'unknown()'
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
68 c3
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
69 $ fileset 'ignored()'
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
70 .hgignore
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
71 c2
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
72 $ fileset 'hgignore()'
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
73 a2
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
74 b2
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
75 $ fileset 'clean()'
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
76 b1
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
77 $ fileset 'copied()'
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
78 c1
0c41fb2d972a test-fileset: test file status predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17363
diff changeset
79
17365
8a0513bf030a fileset: exclude deleted files from matchctx.existing()
Patrick Mezard <patrick@mezard.eu>
parents: 17364
diff changeset
80 Test files properties
8a0513bf030a fileset: exclude deleted files from matchctx.existing()
Patrick Mezard <patrick@mezard.eu>
parents: 17364
diff changeset
81
8a0513bf030a fileset: exclude deleted files from matchctx.existing()
Patrick Mezard <patrick@mezard.eu>
parents: 17364
diff changeset
82 >>> file('bin', 'wb').write('\0a')
8a0513bf030a fileset: exclude deleted files from matchctx.existing()
Patrick Mezard <patrick@mezard.eu>
parents: 17364
diff changeset
83 $ fileset 'binary()'
17366
04c65cb59467 fileset: matchctx.existing() must consider unknown files
Patrick Mezard <patrick@mezard.eu>
parents: 17365
diff changeset
84 $ fileset 'binary() and unknown()'
04c65cb59467 fileset: matchctx.existing() must consider unknown files
Patrick Mezard <patrick@mezard.eu>
parents: 17365
diff changeset
85 bin
17367
ce625185cfd9 fileset: matchctx.existing() must consider ignored files
Patrick Mezard <patrick@mezard.eu>
parents: 17366
diff changeset
86 $ echo '^bin$' >> .hgignore
ce625185cfd9 fileset: matchctx.existing() must consider ignored files
Patrick Mezard <patrick@mezard.eu>
parents: 17366
diff changeset
87 $ fileset 'binary() and ignored()'
ce625185cfd9 fileset: matchctx.existing() must consider ignored files
Patrick Mezard <patrick@mezard.eu>
parents: 17366
diff changeset
88 bin
17366
04c65cb59467 fileset: matchctx.existing() must consider unknown files
Patrick Mezard <patrick@mezard.eu>
parents: 17365
diff changeset
89 $ hg add bin
04c65cb59467 fileset: matchctx.existing() must consider unknown files
Patrick Mezard <patrick@mezard.eu>
parents: 17365
diff changeset
90 $ fileset 'binary()'
04c65cb59467 fileset: matchctx.existing() must consider unknown files
Patrick Mezard <patrick@mezard.eu>
parents: 17365
diff changeset
91 bin
17365
8a0513bf030a fileset: exclude deleted files from matchctx.existing()
Patrick Mezard <patrick@mezard.eu>
parents: 17364
diff changeset
92
17368
01cc267fc105 fileset: do not traceback on invalid grep pattern
Patrick Mezard <patrick@mezard.eu>
parents: 17367
diff changeset
93 $ fileset 'grep("b{1}")'
01cc267fc105 fileset: do not traceback on invalid grep pattern
Patrick Mezard <patrick@mezard.eu>
parents: 17367
diff changeset
94 b2
01cc267fc105 fileset: do not traceback on invalid grep pattern
Patrick Mezard <patrick@mezard.eu>
parents: 17367
diff changeset
95 c1
01cc267fc105 fileset: do not traceback on invalid grep pattern
Patrick Mezard <patrick@mezard.eu>
parents: 17367
diff changeset
96 b1
01cc267fc105 fileset: do not traceback on invalid grep pattern
Patrick Mezard <patrick@mezard.eu>
parents: 17367
diff changeset
97 $ fileset 'grep("missingparens(")'
01cc267fc105 fileset: do not traceback on invalid grep pattern
Patrick Mezard <patrick@mezard.eu>
parents: 17367
diff changeset
98 hg: parse error: invalid match pattern: unbalanced parenthesis
01cc267fc105 fileset: do not traceback on invalid grep pattern
Patrick Mezard <patrick@mezard.eu>
parents: 17367
diff changeset
99 [255]
01cc267fc105 fileset: do not traceback on invalid grep pattern
Patrick Mezard <patrick@mezard.eu>
parents: 17367
diff changeset
100
17369
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
101 #if execbit
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
102 $ chmod +x b2
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
103 $ fileset 'exec()'
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
104 b2
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
105 #endif
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
106
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
107 #if symlink
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
108 $ ln -s b2 b2link
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
109 $ fileset 'symlink() and unknown()'
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
110 b2link
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
111 $ hg add b2link
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
112 #endif
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
113
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
114 >>> file('1k', 'wb').write(' '*1024)
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
115 >>> file('2k', 'wb').write(' '*2048)
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
116 $ hg add 1k 2k
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
117 $ fileset 'size("bar")'
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
118 hg: parse error: couldn't parse size: bar
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
119 [255]
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
120 $ fileset 'size(1k)'
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
121 1k
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
122 $ fileset '(1k or 2k) and size("< 2k")'
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
123 1k
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
124 $ fileset '(1k or 2k) and size("<=2k")'
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
125 1k
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
126 2k
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
127 $ fileset '(1k or 2k) and size("> 1k")'
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
128 2k
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
129 $ fileset '(1k or 2k) and size(">=1K")'
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
130 1k
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
131 2k
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
132 $ fileset '(1k or 2k) and size(".5KB - 1.5kB")'
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
133 1k
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
134
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
135 Test merge states
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
136
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
137 $ hg ci -m manychanges
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
138 $ hg up -C 0
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
139 * files updated, 0 files merged, * files removed, 0 files unresolved (glob)
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
140 $ echo c >> b2
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
141 $ hg ci -m diverging b2
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
142 created new head
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
143 $ fileset 'resolved()'
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
144 $ fileset 'unresolved()'
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
145 $ hg merge
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
146 merging b2
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
147 warning: conflicts during merge.
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
148 merging b2 incomplete! (edit conflicts, then use 'hg resolve --mark')
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
149 * files updated, 0 files merged, * files removed, 1 files unresolved (glob)
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
150 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
151 [1]
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
152 $ fileset 'resolved()'
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
153 $ fileset 'unresolved()'
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
154 b2
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
155 $ echo e > b2
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
156 $ hg resolve -m b2
21947
b081decd9062 resolve: add parenthesis around "no more unresolved files" message
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21267
diff changeset
157 (no more unresolved files)
17369
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
158 $ fileset 'resolved()'
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
159 b2
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
160 $ fileset 'unresolved()'
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
161 $ hg ci -m merge
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
162
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
163 Test subrepo predicate
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
164
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
165 $ hg init sub
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
166 $ echo a > sub/suba
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
167 $ hg -R sub add sub/suba
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
168 $ hg -R sub ci -m sub
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
169 $ echo 'sub = sub' > .hgsub
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
170 $ fileset 'subrepo()'
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
171 $ hg add .hgsub
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
172 $ fileset 'subrepo()'
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
173 sub
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
174 $ fileset 'subrepo("sub")'
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
175 sub
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
176 $ fileset 'subrepo("glob:*")'
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
177 sub
17370
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
178 $ hg ci -m subrepo
17369
b360011a132d test-fileset: test remaining predicates
Patrick Mezard <patrick@mezard.eu>
parents: 17368
diff changeset
179
17370
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
180 Test with a revision
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
181
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
182 $ hg log -G --template '{rev} {desc}\n'
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
183 @ 4 subrepo
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
184 |
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
185 o 3 merge
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
186 |\
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
187 | o 2 diverging
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
188 | |
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
189 o | 1 manychanges
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
190 |/
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
191 o 0 addfiles
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
192
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
193 $ echo unknown > unknown
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
194 $ fileset -r1 'modified()'
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
195 b2
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
196 $ fileset -r1 'added() and c1'
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
197 c1
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
198 $ fileset -r1 'removed()'
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
199 a2
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
200 $ fileset -r1 'deleted()'
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
201 $ fileset -r1 'unknown()'
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
202 $ fileset -r1 'ignored()'
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
203 $ fileset -r1 'hgignore()'
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
204 b2
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
205 bin
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
206 $ fileset -r1 'binary()'
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
207 bin
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
208 $ fileset -r1 'size(1k)'
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
209 1k
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
210 $ fileset -r3 'resolved()'
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
211 $ fileset -r3 'unresolved()'
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
212
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
213 #if execbit
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
214 $ fileset -r1 'exec()'
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
215 b2
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
216 #endif
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
217
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
218 #if symlink
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
219 $ fileset -r1 'symlink()'
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
220 b2link
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
221 #endif
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
222
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
223 $ fileset -r4 'subrepo("re:su.*")'
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
224 sub
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
225 $ fileset -r4 'subrepo("sub")'
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
226 sub
17371
1310489eb5d6 fileset: fix generator vs list bug in fast path
Patrick Mezard <patrick@mezard.eu>
parents: 17370
diff changeset
227 $ fileset -r4 'b2 or c1'
1310489eb5d6 fileset: fix generator vs list bug in fast path
Patrick Mezard <patrick@mezard.eu>
parents: 17370
diff changeset
228 b2
1310489eb5d6 fileset: fix generator vs list bug in fast path
Patrick Mezard <patrick@mezard.eu>
parents: 17370
diff changeset
229 c1
17370
3fe199579323 debugfileset: implement --rev, more tests
Patrick Mezard <patrick@mezard.eu>
parents: 17369
diff changeset
230
18842
3ce3f2b059a1 filesets: add eol predicate
Matt Mackall <mpm@selenic.com>
parents: 17371
diff changeset
231 >>> open('dos', 'wb').write("dos\r\n")
3ce3f2b059a1 filesets: add eol predicate
Matt Mackall <mpm@selenic.com>
parents: 17371
diff changeset
232 >>> open('mixed', 'wb').write("dos\r\nunix\n")
3ce3f2b059a1 filesets: add eol predicate
Matt Mackall <mpm@selenic.com>
parents: 17371
diff changeset
233 >>> open('mac', 'wb').write("mac\r")
3ce3f2b059a1 filesets: add eol predicate
Matt Mackall <mpm@selenic.com>
parents: 17371
diff changeset
234 $ hg add dos mixed mac
3ce3f2b059a1 filesets: add eol predicate
Matt Mackall <mpm@selenic.com>
parents: 17371
diff changeset
235
3ce3f2b059a1 filesets: add eol predicate
Matt Mackall <mpm@selenic.com>
parents: 17371
diff changeset
236 $ fileset 'eol(dos)'
3ce3f2b059a1 filesets: add eol predicate
Matt Mackall <mpm@selenic.com>
parents: 17371
diff changeset
237 dos
3ce3f2b059a1 filesets: add eol predicate
Matt Mackall <mpm@selenic.com>
parents: 17371
diff changeset
238 mixed
3ce3f2b059a1 filesets: add eol predicate
Matt Mackall <mpm@selenic.com>
parents: 17371
diff changeset
239 $ fileset 'eol(unix)'
3ce3f2b059a1 filesets: add eol predicate
Matt Mackall <mpm@selenic.com>
parents: 17371
diff changeset
240 .hgsub
3ce3f2b059a1 filesets: add eol predicate
Matt Mackall <mpm@selenic.com>
parents: 17371
diff changeset
241 .hgsubstate
3ce3f2b059a1 filesets: add eol predicate
Matt Mackall <mpm@selenic.com>
parents: 17371
diff changeset
242 a1
3ce3f2b059a1 filesets: add eol predicate
Matt Mackall <mpm@selenic.com>
parents: 17371
diff changeset
243 b1
3ce3f2b059a1 filesets: add eol predicate
Matt Mackall <mpm@selenic.com>
parents: 17371
diff changeset
244 b2
3ce3f2b059a1 filesets: add eol predicate
Matt Mackall <mpm@selenic.com>
parents: 17371
diff changeset
245 c1
3ce3f2b059a1 filesets: add eol predicate
Matt Mackall <mpm@selenic.com>
parents: 17371
diff changeset
246 mixed
3ce3f2b059a1 filesets: add eol predicate
Matt Mackall <mpm@selenic.com>
parents: 17371
diff changeset
247 $ fileset 'eol(mac)'
3ce3f2b059a1 filesets: add eol predicate
Matt Mackall <mpm@selenic.com>
parents: 17371
diff changeset
248 mac