##// END OF EJS Templates
tests: demonstrate error when narrowing with `rootfilesin:` pattern...
Martin von Zweigbergk -
r52168:39f7b2b5 default
parent child Browse files
Show More
@@ -1,546 +1,574 b''
1 #testcases flat tree
1 #testcases flat tree
2 #testcases lfs-on lfs-off
2 #testcases lfs-on lfs-off
3
3
4 $ cat >> $HGRCPATH << EOF
4 $ cat >> $HGRCPATH << EOF
5 > [experimental]
5 > [experimental]
6 > evolution=createmarkers
6 > evolution=createmarkers
7 > EOF
7 > EOF
8
8
9 #if lfs-on
9 #if lfs-on
10 $ cat >> $HGRCPATH <<EOF
10 $ cat >> $HGRCPATH <<EOF
11 > [extensions]
11 > [extensions]
12 > lfs =
12 > lfs =
13 > EOF
13 > EOF
14 #endif
14 #endif
15
15
16 $ . "$TESTDIR/narrow-library.sh"
16 $ . "$TESTDIR/narrow-library.sh"
17
17
18 #if tree
18 #if tree
19 $ cat << EOF >> $HGRCPATH
19 $ cat << EOF >> $HGRCPATH
20 > [experimental]
20 > [experimental]
21 > treemanifest = 1
21 > treemanifest = 1
22 > EOF
22 > EOF
23 #endif
23 #endif
24
24
25 $ hg init master
25 $ hg init master
26 $ cd master
26 $ cd master
27 $ cat >> .hg/hgrc <<EOF
27 $ cat >> .hg/hgrc <<EOF
28 > [narrow]
28 > [narrow]
29 > serveellipses=True
29 > serveellipses=True
30 > EOF
30 > EOF
31 $ for x in `$TESTDIR/seq.py 0 10`
31 $ for x in `$TESTDIR/seq.py 0 10`
32 > do
32 > do
33 > mkdir d$x
33 > mkdir d$x
34 > echo $x > d$x/f
34 > echo $x > d$x/f
35 > hg add d$x/f
35 > hg add d$x/f
36 > hg commit -m "add d$x/f"
36 > hg commit -m "add d$x/f"
37 > done
37 > done
38 $ hg log -T "{rev}: {desc}\n"
38 $ hg log -T "{rev}: {desc}\n"
39 10: add d10/f
39 10: add d10/f
40 9: add d9/f
40 9: add d9/f
41 8: add d8/f
41 8: add d8/f
42 7: add d7/f
42 7: add d7/f
43 6: add d6/f
43 6: add d6/f
44 5: add d5/f
44 5: add d5/f
45 4: add d4/f
45 4: add d4/f
46 3: add d3/f
46 3: add d3/f
47 2: add d2/f
47 2: add d2/f
48 1: add d1/f
48 1: add d1/f
49 0: add d0/f
49 0: add d0/f
50 $ cd ..
50 $ cd ..
51
51
52 Error if '.' or '..' are in the directory to track.
52 Error if '.' or '..' are in the directory to track.
53 $ hg clone --narrow ssh://user@dummy/master foo --include ./asdf
53 $ hg clone --narrow ssh://user@dummy/master foo --include ./asdf
54 abort: "." and ".." are not allowed in narrowspec paths
54 abort: "." and ".." are not allowed in narrowspec paths
55 [255]
55 [255]
56 $ hg clone --narrow ssh://user@dummy/master foo --include asdf/..
56 $ hg clone --narrow ssh://user@dummy/master foo --include asdf/..
57 abort: "." and ".." are not allowed in narrowspec paths
57 abort: "." and ".." are not allowed in narrowspec paths
58 [255]
58 [255]
59 $ hg clone --narrow ssh://user@dummy/master foo --include a/./c
59 $ hg clone --narrow ssh://user@dummy/master foo --include a/./c
60 abort: "." and ".." are not allowed in narrowspec paths
60 abort: "." and ".." are not allowed in narrowspec paths
61 [255]
61 [255]
62
62
63 Names with '.' in them are OK.
63 Names with '.' in them are OK.
64 $ hg clone --narrow ./master should-work --include a/.b/c
64 $ hg clone --narrow ./master should-work --include a/.b/c
65 requesting all changes
65 requesting all changes
66 adding changesets
66 adding changesets
67 adding manifests
67 adding manifests
68 adding file changes
68 adding file changes
69 added 1 changesets with 0 changes to 0 files
69 added 1 changesets with 0 changes to 0 files
70 new changesets * (glob)
70 new changesets * (glob)
71 updating to branch default
71 updating to branch default
72 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
72 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
73
73
74 The "narrow" repo requirement is ignored by [debugupgraderepo]
74 The "narrow" repo requirement is ignored by [debugupgraderepo]
75
75
76 $ (cd should-work; hg debugupgraderepo | grep 'no format upgrades found in existing repository')
76 $ (cd should-work; hg debugupgraderepo | grep 'no format upgrades found in existing repository')
77 (no format upgrades found in existing repository)
77 (no format upgrades found in existing repository)
78
78
79 Test repo with local changes
79 Test repo with local changes
80 $ hg clone --narrow ssh://user@dummy/master narrow-local-changes --include d0 --include d3 --include d6
80 $ hg clone --narrow ssh://user@dummy/master narrow-local-changes --include d0 --include d3 --include d6
81 requesting all changes
81 requesting all changes
82 adding changesets
82 adding changesets
83 adding manifests
83 adding manifests
84 adding file changes
84 adding file changes
85 added 6 changesets with 3 changes to 3 files
85 added 6 changesets with 3 changes to 3 files
86 new changesets *:* (glob)
86 new changesets *:* (glob)
87 updating to branch default
87 updating to branch default
88 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
88 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
89 $ cd narrow-local-changes
89 $ cd narrow-local-changes
90 $ echo local change >> d0/f
90 $ echo local change >> d0/f
91 $ hg ci -m 'local change to d0'
91 $ hg ci -m 'local change to d0'
92 $ hg co '.^'
92 $ hg co '.^'
93 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
93 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
94 $ echo local change >> d3/f
94 $ echo local change >> d3/f
95 $ hg ci -m 'local hidden change to d3'
95 $ hg ci -m 'local hidden change to d3'
96 created new head
96 created new head
97 $ hg ci --amend -m 'local change to d3'
97 $ hg ci --amend -m 'local change to d3'
98 $ hg tracked --removeinclude d0
98 $ hg tracked --removeinclude d0
99 comparing with ssh://user@dummy/master
99 comparing with ssh://user@dummy/master
100 searching for changes
100 searching for changes
101 looking for local changes to affected paths
101 looking for local changes to affected paths
102 The following changeset(s) or their ancestors have local changes not on the remote:
102 The following changeset(s) or their ancestors have local changes not on the remote:
103 * (glob)
103 * (glob)
104 abort: local changes found
104 abort: local changes found
105 (use --force-delete-local-changes to ignore)
105 (use --force-delete-local-changes to ignore)
106 [20]
106 [20]
107 Check that nothing was removed by the failed attempts
107 Check that nothing was removed by the failed attempts
108 $ hg tracked
108 $ hg tracked
109 I path:d0
109 I path:d0
110 I path:d3
110 I path:d3
111 I path:d6
111 I path:d6
112 $ hg files
112 $ hg files
113 d0/f
113 d0/f
114 d3/f
114 d3/f
115 d6/f
115 d6/f
116 $ find *
116 $ find *
117 d0
117 d0
118 d0/f
118 d0/f
119 d3
119 d3
120 d3/f
120 d3/f
121 d6
121 d6
122 d6/f
122 d6/f
123 $ hg verify -q
123 $ hg verify -q
124 Force deletion of local changes
124 Force deletion of local changes
125 $ hg log -T "{rev}: {desc} {outsidenarrow}\n"
125 $ hg log -T "{rev}: {desc} {outsidenarrow}\n"
126 8: local change to d3
126 8: local change to d3
127 6: local change to d0
127 6: local change to d0
128 5: add d10/f outsidenarrow
128 5: add d10/f outsidenarrow
129 4: add d6/f
129 4: add d6/f
130 3: add d5/f outsidenarrow
130 3: add d5/f outsidenarrow
131 2: add d3/f
131 2: add d3/f
132 1: add d2/f outsidenarrow
132 1: add d2/f outsidenarrow
133 0: add d0/f
133 0: add d0/f
134 $ hg tracked --removeinclude d0 --force-delete-local-changes
134 $ hg tracked --removeinclude d0 --force-delete-local-changes
135 comparing with ssh://user@dummy/master
135 comparing with ssh://user@dummy/master
136 searching for changes
136 searching for changes
137 looking for local changes to affected paths
137 looking for local changes to affected paths
138 The following changeset(s) or their ancestors have local changes not on the remote:
138 The following changeset(s) or their ancestors have local changes not on the remote:
139 * (glob)
139 * (glob)
140 moving unwanted changesets to backup
140 moving unwanted changesets to backup
141 saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)
141 saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)
142 deleting data/d0/f.i (reporevlogstore !)
142 deleting data/d0/f.i (reporevlogstore !)
143 deleting meta/d0/00manifest.i (tree !)
143 deleting meta/d0/00manifest.i (tree !)
144 deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)
144 deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)
145 deleting data/d0/f/4374b5650fc5ae54ac857c0f0381971fdde376f7 (reposimplestore !)
145 deleting data/d0/f/4374b5650fc5ae54ac857c0f0381971fdde376f7 (reposimplestore !)
146 deleting data/d0/f/index (reposimplestore !)
146 deleting data/d0/f/index (reposimplestore !)
147 deleting unwanted files from working copy
147 deleting unwanted files from working copy
148
148
149 $ hg log -T "{rev}: {desc} {outsidenarrow}\n"
149 $ hg log -T "{rev}: {desc} {outsidenarrow}\n"
150 7: local change to d3
150 7: local change to d3
151 5: add d10/f outsidenarrow
151 5: add d10/f outsidenarrow
152 4: add d6/f
152 4: add d6/f
153 3: add d5/f outsidenarrow
153 3: add d5/f outsidenarrow
154 2: add d3/f
154 2: add d3/f
155 1: add d2/f outsidenarrow
155 1: add d2/f outsidenarrow
156 0: add d0/f outsidenarrow
156 0: add d0/f outsidenarrow
157 Can restore stripped local changes after widening
157 Can restore stripped local changes after widening
158 $ hg tracked --addinclude d0 -q
158 $ hg tracked --addinclude d0 -q
159 $ hg unbundle .hg/strip-backup/*-narrow.hg -q
159 $ hg unbundle .hg/strip-backup/*-narrow.hg -q
160 $ hg --hidden co -r 'desc("local change to d0")' -q
160 $ hg --hidden co -r 'desc("local change to d0")' -q
161 $ cat d0/f
161 $ cat d0/f
162 0
162 0
163 local change
163 local change
164 Pruned commits affecting removed paths should not prevent narrowing
164 Pruned commits affecting removed paths should not prevent narrowing
165 $ hg co '.^'
165 $ hg co '.^'
166 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
166 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
167 $ hg debugobsolete `hg log -T '{node}' -r 'desc("local change to d0")'`
167 $ hg debugobsolete `hg log -T '{node}' -r 'desc("local change to d0")'`
168 1 new obsolescence markers
168 1 new obsolescence markers
169 obsoleted 1 changesets
169 obsoleted 1 changesets
170 $ hg tracked --removeinclude d0
170 $ hg tracked --removeinclude d0
171 comparing with ssh://user@dummy/master
171 comparing with ssh://user@dummy/master
172 searching for changes
172 searching for changes
173 looking for local changes to affected paths
173 looking for local changes to affected paths
174 moving unwanted changesets to backup
174 moving unwanted changesets to backup
175 saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)
175 saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)
176 deleting data/d0/f.i (reporevlogstore !)
176 deleting data/d0/f.i (reporevlogstore !)
177 deleting meta/d0/00manifest.i (tree !)
177 deleting meta/d0/00manifest.i (tree !)
178 deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)
178 deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)
179 deleting data/d0/f/4374b5650fc5ae54ac857c0f0381971fdde376f7 (reposimplestore !)
179 deleting data/d0/f/4374b5650fc5ae54ac857c0f0381971fdde376f7 (reposimplestore !)
180 deleting data/d0/f/index (reposimplestore !)
180 deleting data/d0/f/index (reposimplestore !)
181 deleting unwanted files from working copy
181 deleting unwanted files from working copy
182
182
183 Updates off of stripped commit if necessary
183 Updates off of stripped commit if necessary
184 $ hg co -r 'desc("local change to d3")' -q
184 $ hg co -r 'desc("local change to d3")' -q
185 $ echo local change >> d6/f
185 $ echo local change >> d6/f
186 $ hg ci -m 'local change to d6'
186 $ hg ci -m 'local change to d6'
187 $ hg tracked --removeinclude d3 --force-delete-local-changes
187 $ hg tracked --removeinclude d3 --force-delete-local-changes
188 comparing with ssh://user@dummy/master
188 comparing with ssh://user@dummy/master
189 searching for changes
189 searching for changes
190 looking for local changes to affected paths
190 looking for local changes to affected paths
191 The following changeset(s) or their ancestors have local changes not on the remote:
191 The following changeset(s) or their ancestors have local changes not on the remote:
192 * (glob)
192 * (glob)
193 * (glob)
193 * (glob)
194 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
194 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
195 moving unwanted changesets to backup
195 moving unwanted changesets to backup
196 saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)
196 saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)
197 deleting data/d3/f.i (reporevlogstore !)
197 deleting data/d3/f.i (reporevlogstore !)
198 deleting meta/d3/00manifest.i (tree !)
198 deleting meta/d3/00manifest.i (tree !)
199 deleting data/d3/f/2661d26c649684b482d10f91960cc3db683c38b4 (reposimplestore !)
199 deleting data/d3/f/2661d26c649684b482d10f91960cc3db683c38b4 (reposimplestore !)
200 deleting data/d3/f/99fa7136105a15e2045ce3d9152e4837c5349e4d (reposimplestore !)
200 deleting data/d3/f/99fa7136105a15e2045ce3d9152e4837c5349e4d (reposimplestore !)
201 deleting data/d3/f/index (reposimplestore !)
201 deleting data/d3/f/index (reposimplestore !)
202 deleting unwanted files from working copy
202 deleting unwanted files from working copy
203 $ hg log -T '{desc}\n' -r .
203 $ hg log -T '{desc}\n' -r .
204 add d10/f
204 add d10/f
205 Updates to nullid if necessary
205 Updates to nullid if necessary
206 $ hg tracked --addinclude d3 -q
206 $ hg tracked --addinclude d3 -q
207 $ hg co null -q
207 $ hg co null -q
208 $ mkdir d3
208 $ mkdir d3
209 $ echo local change > d3/f
209 $ echo local change > d3/f
210 $ hg add d3/f
210 $ hg add d3/f
211 $ hg ci -m 'local change to d3'
211 $ hg ci -m 'local change to d3'
212 created new head
212 created new head
213 $ hg tracked --removeinclude d3 --force-delete-local-changes
213 $ hg tracked --removeinclude d3 --force-delete-local-changes
214 comparing with ssh://user@dummy/master
214 comparing with ssh://user@dummy/master
215 searching for changes
215 searching for changes
216 looking for local changes to affected paths
216 looking for local changes to affected paths
217 The following changeset(s) or their ancestors have local changes not on the remote:
217 The following changeset(s) or their ancestors have local changes not on the remote:
218 * (glob)
218 * (glob)
219 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
219 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
220 moving unwanted changesets to backup
220 moving unwanted changesets to backup
221 saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)
221 saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)
222 deleting data/d3/f.i (reporevlogstore !)
222 deleting data/d3/f.i (reporevlogstore !)
223 deleting meta/d3/00manifest.i (tree !)
223 deleting meta/d3/00manifest.i (tree !)
224 deleting data/d3/f/2661d26c649684b482d10f91960cc3db683c38b4 (reposimplestore !)
224 deleting data/d3/f/2661d26c649684b482d10f91960cc3db683c38b4 (reposimplestore !)
225 deleting data/d3/f/5ce0767945cbdbca3b924bb9fbf5143f72ab40ac (reposimplestore !)
225 deleting data/d3/f/5ce0767945cbdbca3b924bb9fbf5143f72ab40ac (reposimplestore !)
226 deleting data/d3/f/index (reposimplestore !)
226 deleting data/d3/f/index (reposimplestore !)
227 deleting unwanted files from working copy
227 deleting unwanted files from working copy
228 $ hg id
228 $ hg id
229 000000000000
229 000000000000
230 $ cd ..
230 $ cd ..
231
231
232 Narrowing doesn't resurrect old commits (unlike what regular `hg strip` does)
232 Narrowing doesn't resurrect old commits (unlike what regular `hg strip` does)
233 $ hg clone --narrow ssh://user@dummy/master narrow-obsmarkers --include d0 --include d3 -q
233 $ hg clone --narrow ssh://user@dummy/master narrow-obsmarkers --include d0 --include d3 -q
234 $ cd narrow-obsmarkers
234 $ cd narrow-obsmarkers
235 $ echo a >> d0/f2
235 $ echo a >> d0/f2
236 $ hg add d0/f2
236 $ hg add d0/f2
237 $ hg ci -m 'modify d0/'
237 $ hg ci -m 'modify d0/'
238 $ echo a >> d3/f2
238 $ echo a >> d3/f2
239 $ hg add d3/f2
239 $ hg add d3/f2
240 $ hg commit --amend -m 'modify d0/ and d3/'
240 $ hg commit --amend -m 'modify d0/ and d3/'
241 $ hg log -T "{rev}: {desc}\n"
241 $ hg log -T "{rev}: {desc}\n"
242 5: modify d0/ and d3/
242 5: modify d0/ and d3/
243 3: add d10/f
243 3: add d10/f
244 2: add d3/f
244 2: add d3/f
245 1: add d2/f
245 1: add d2/f
246 0: add d0/f
246 0: add d0/f
247 $ hg tracked --removeinclude d3 --force-delete-local-changes -q
247 $ hg tracked --removeinclude d3 --force-delete-local-changes -q
248 $ hg log -T "{rev}: {desc}\n"
248 $ hg log -T "{rev}: {desc}\n"
249 3: add d10/f
249 3: add d10/f
250 2: add d3/f
250 2: add d3/f
251 1: add d2/f
251 1: add d2/f
252 0: add d0/f
252 0: add d0/f
253 $ cd ..
253 $ cd ..
254
254
255 Widening doesn't lose bookmarks
255 Widening doesn't lose bookmarks
256 $ hg clone --narrow ssh://user@dummy/master widen-bookmarks --include d0 -q
256 $ hg clone --narrow ssh://user@dummy/master widen-bookmarks --include d0 -q
257 $ cd widen-bookmarks
257 $ cd widen-bookmarks
258 $ hg bookmark my-bookmark
258 $ hg bookmark my-bookmark
259 $ hg log -T "{rev}: {desc} {bookmarks}\n"
259 $ hg log -T "{rev}: {desc} {bookmarks}\n"
260 1: add d10/f my-bookmark
260 1: add d10/f my-bookmark
261 0: add d0/f
261 0: add d0/f
262 $ hg tracked --addinclude d3 -q
262 $ hg tracked --addinclude d3 -q
263 $ hg log -T "{rev}: {desc} {bookmarks}\n"
263 $ hg log -T "{rev}: {desc} {bookmarks}\n"
264 3: add d10/f my-bookmark
264 3: add d10/f my-bookmark
265 2: add d3/f
265 2: add d3/f
266 1: add d2/f
266 1: add d2/f
267 0: add d0/f
267 0: add d0/f
268 $ cd ..
268 $ cd ..
269
269
270 Can remove last include, making repo empty
270 Can remove last include, making repo empty
271 $ hg clone --narrow ssh://user@dummy/master narrow-empty --include d0 -r 5
271 $ hg clone --narrow ssh://user@dummy/master narrow-empty --include d0 -r 5
272 adding changesets
272 adding changesets
273 adding manifests
273 adding manifests
274 adding file changes
274 adding file changes
275 added 2 changesets with 1 changes to 1 files
275 added 2 changesets with 1 changes to 1 files
276 new changesets *:* (glob)
276 new changesets *:* (glob)
277 updating to branch default
277 updating to branch default
278 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
278 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
279 $ cd narrow-empty
279 $ cd narrow-empty
280 $ hg tracked --removeinclude d0
280 $ hg tracked --removeinclude d0
281 comparing with ssh://user@dummy/master
281 comparing with ssh://user@dummy/master
282 searching for changes
282 searching for changes
283 looking for local changes to affected paths
283 looking for local changes to affected paths
284 deleting data/d0/f.i (reporevlogstore !)
284 deleting data/d0/f.i (reporevlogstore !)
285 deleting meta/d0/00manifest.i (tree !)
285 deleting meta/d0/00manifest.i (tree !)
286 deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)
286 deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)
287 deleting data/d0/f/index (reposimplestore !)
287 deleting data/d0/f/index (reposimplestore !)
288 deleting unwanted files from working copy
288 deleting unwanted files from working copy
289 $ hg tracked
289 $ hg tracked
290 $ hg files
290 $ hg files
291 [1]
291 [1]
292 $ test -d d0
292 $ test -d d0
293 [1]
293 [1]
294 Do some work in the empty clone
294 Do some work in the empty clone
295 $ hg diff --change .
295 $ hg diff --change .
296 $ hg branch foo
296 $ hg branch foo
297 marked working directory as branch foo
297 marked working directory as branch foo
298 (branches are permanent and global, did you want a bookmark?)
298 (branches are permanent and global, did you want a bookmark?)
299 $ hg ci -m empty
299 $ hg ci -m empty
300 $ hg log -T "{rev}: {desc} {outsidenarrow}\n"
300 $ hg log -T "{rev}: {desc} {outsidenarrow}\n"
301 2: empty
301 2: empty
302 1: add d5/f outsidenarrow
302 1: add d5/f outsidenarrow
303 0: add d0/f outsidenarrow
303 0: add d0/f outsidenarrow
304 $ hg pull -q
304 $ hg pull -q
305 Can widen the empty clone
305 Can widen the empty clone
306 $ hg tracked --addinclude d0
306 $ hg tracked --addinclude d0
307 comparing with ssh://user@dummy/master
307 comparing with ssh://user@dummy/master
308 searching for changes
308 searching for changes
309 saved backup bundle to $TESTTMP/narrow-empty/.hg/strip-backup/*-widen.hg (glob)
309 saved backup bundle to $TESTTMP/narrow-empty/.hg/strip-backup/*-widen.hg (glob)
310 adding changesets
310 adding changesets
311 adding manifests
311 adding manifests
312 adding file changes
312 adding file changes
313 added 4 changesets with 1 changes to 1 files (+1 heads)
313 added 4 changesets with 1 changes to 1 files (+1 heads)
314 $ hg tracked
314 $ hg tracked
315 I path:d0
315 I path:d0
316 $ hg files
316 $ hg files
317 d0/f
317 d0/f
318 $ find *
318 $ find *
319 d0
319 d0
320 d0/f
320 d0/f
321 $ cd ..
321 $ cd ..
322
322
323 TODO(martinvonz): test including e.g. d3/g and then removing it once
323 TODO(martinvonz): test including e.g. d3/g and then removing it once
324 https://bitbucket.org/Google/narrowhg/issues/6 is fixed
324 https://bitbucket.org/Google/narrowhg/issues/6 is fixed
325
325
326 $ hg clone --narrow ssh://user@dummy/master narrow --include d0 --include d3 --include d6 --include d9
326 $ hg clone --narrow ssh://user@dummy/master narrow --include d0 --include d3 --include d6 --include d9
327 requesting all changes
327 requesting all changes
328 adding changesets
328 adding changesets
329 adding manifests
329 adding manifests
330 adding file changes
330 adding file changes
331 added 8 changesets with 4 changes to 4 files
331 added 8 changesets with 4 changes to 4 files
332 new changesets *:* (glob)
332 new changesets *:* (glob)
333 updating to branch default
333 updating to branch default
334 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
334 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
335 $ cd narrow
335 $ cd narrow
336 $ hg tracked
336 $ hg tracked
337 I path:d0
337 I path:d0
338 I path:d3
338 I path:d3
339 I path:d6
339 I path:d6
340 I path:d9
340 I path:d9
341 $ hg tracked --removeinclude d6
341 $ hg tracked --removeinclude d6
342 comparing with ssh://user@dummy/master
342 comparing with ssh://user@dummy/master
343 searching for changes
343 searching for changes
344 looking for local changes to affected paths
344 looking for local changes to affected paths
345 deleting data/d6/f.i (reporevlogstore !)
345 deleting data/d6/f.i (reporevlogstore !)
346 deleting meta/d6/00manifest.i (tree !)
346 deleting meta/d6/00manifest.i (tree !)
347 deleting data/d6/f/7339d30678f451ac8c3f38753beeb4cf2e1655c7 (reposimplestore !)
347 deleting data/d6/f/7339d30678f451ac8c3f38753beeb4cf2e1655c7 (reposimplestore !)
348 deleting data/d6/f/index (reposimplestore !)
348 deleting data/d6/f/index (reposimplestore !)
349 deleting unwanted files from working copy
349 deleting unwanted files from working copy
350 $ hg tracked
350 $ hg tracked
351 I path:d0
351 I path:d0
352 I path:d3
352 I path:d3
353 I path:d9
353 I path:d9
354 #if repofncache
354 #if repofncache
355 $ hg debugrebuildfncache
355 $ hg debugrebuildfncache
356 fncache already up to date
356 fncache already up to date
357 #endif
357 #endif
358 $ find *
358 $ find *
359 d0
359 d0
360 d0/f
360 d0/f
361 d3
361 d3
362 d3/f
362 d3/f
363 d9
363 d9
364 d9/f
364 d9/f
365 $ hg verify -q
365 $ hg verify -q
366 $ hg tracked --addexclude d3/f
366 $ hg tracked --addexclude d3/f
367 comparing with ssh://user@dummy/master
367 comparing with ssh://user@dummy/master
368 searching for changes
368 searching for changes
369 looking for local changes to affected paths
369 looking for local changes to affected paths
370 deleting data/d3/f.i (reporevlogstore !)
370 deleting data/d3/f.i (reporevlogstore !)
371 deleting data/d3/f/2661d26c649684b482d10f91960cc3db683c38b4 (reposimplestore !)
371 deleting data/d3/f/2661d26c649684b482d10f91960cc3db683c38b4 (reposimplestore !)
372 deleting data/d3/f/index (reposimplestore !)
372 deleting data/d3/f/index (reposimplestore !)
373 deleting unwanted files from working copy
373 deleting unwanted files from working copy
374 $ hg tracked
374 $ hg tracked
375 I path:d0
375 I path:d0
376 I path:d3
376 I path:d3
377 I path:d9
377 I path:d9
378 X path:d3/f
378 X path:d3/f
379 #if repofncache
379 #if repofncache
380 $ hg debugrebuildfncache
380 $ hg debugrebuildfncache
381 fncache already up to date
381 fncache already up to date
382 #endif
382 #endif
383 $ find *
383 $ find *
384 d0
384 d0
385 d0/f
385 d0/f
386 d9
386 d9
387 d9/f
387 d9/f
388 $ hg verify -q
388 $ hg verify -q
389 $ hg tracked --addexclude d0
389 $ hg tracked --addexclude d0
390 comparing with ssh://user@dummy/master
390 comparing with ssh://user@dummy/master
391 searching for changes
391 searching for changes
392 looking for local changes to affected paths
392 looking for local changes to affected paths
393 deleting data/d0/f.i (reporevlogstore !)
393 deleting data/d0/f.i (reporevlogstore !)
394 deleting meta/d0/00manifest.i (tree !)
394 deleting meta/d0/00manifest.i (tree !)
395 deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)
395 deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)
396 deleting data/d0/f/index (reposimplestore !)
396 deleting data/d0/f/index (reposimplestore !)
397 deleting unwanted files from working copy
397 deleting unwanted files from working copy
398 $ hg tracked
398 $ hg tracked
399 I path:d3
399 I path:d3
400 I path:d9
400 I path:d9
401 X path:d0
401 X path:d0
402 X path:d3/f
402 X path:d3/f
403 #if repofncache
403 #if repofncache
404 $ hg debugrebuildfncache
404 $ hg debugrebuildfncache
405 fncache already up to date
405 fncache already up to date
406 #endif
406 #endif
407 $ find *
407 $ find *
408 d9
408 d9
409 d9/f
409 d9/f
410
410
411 Make a 15 of changes to d9 to test the path without --verbose
411 Make a 15 of changes to d9 to test the path without --verbose
412 (Note: using regexes instead of "* (glob)" because if the test fails, it
412 (Note: using regexes instead of "* (glob)" because if the test fails, it
413 produces more sensible diffs)
413 produces more sensible diffs)
414 $ hg tracked
414 $ hg tracked
415 I path:d3
415 I path:d3
416 I path:d9
416 I path:d9
417 X path:d0
417 X path:d0
418 X path:d3/f
418 X path:d3/f
419 $ for x in `$TESTDIR/seq.py 1 15`
419 $ for x in `$TESTDIR/seq.py 1 15`
420 > do
420 > do
421 > echo local change >> d9/f
421 > echo local change >> d9/f
422 > hg commit -m "change $x to d9/f"
422 > hg commit -m "change $x to d9/f"
423 > done
423 > done
424 $ hg tracked --removeinclude d9
424 $ hg tracked --removeinclude d9
425 comparing with ssh://user@dummy/master
425 comparing with ssh://user@dummy/master
426 searching for changes
426 searching for changes
427 looking for local changes to affected paths
427 looking for local changes to affected paths
428 The following changeset(s) or their ancestors have local changes not on the remote:
428 The following changeset(s) or their ancestors have local changes not on the remote:
429 ^[0-9a-f]{12}$ (re)
429 ^[0-9a-f]{12}$ (re)
430 ^[0-9a-f]{12}$ (re)
430 ^[0-9a-f]{12}$ (re)
431 ^[0-9a-f]{12}$ (re)
431 ^[0-9a-f]{12}$ (re)
432 ^[0-9a-f]{12}$ (re)
432 ^[0-9a-f]{12}$ (re)
433 ^[0-9a-f]{12}$ (re)
433 ^[0-9a-f]{12}$ (re)
434 ^[0-9a-f]{12}$ (re)
434 ^[0-9a-f]{12}$ (re)
435 ^[0-9a-f]{12}$ (re)
435 ^[0-9a-f]{12}$ (re)
436 ^[0-9a-f]{12}$ (re)
436 ^[0-9a-f]{12}$ (re)
437 ^[0-9a-f]{12}$ (re)
437 ^[0-9a-f]{12}$ (re)
438 ^[0-9a-f]{12}$ (re)
438 ^[0-9a-f]{12}$ (re)
439 ...and 5 more, use --verbose to list all
439 ...and 5 more, use --verbose to list all
440 abort: local changes found
440 abort: local changes found
441 (use --force-delete-local-changes to ignore)
441 (use --force-delete-local-changes to ignore)
442 [20]
442 [20]
443 Now test it *with* verbose.
443 Now test it *with* verbose.
444 $ hg tracked --removeinclude d9 --verbose
444 $ hg tracked --removeinclude d9 --verbose
445 comparing with ssh://user@dummy/master
445 comparing with ssh://user@dummy/master
446 searching for changes
446 searching for changes
447 looking for local changes to affected paths
447 looking for local changes to affected paths
448 The following changeset(s) or their ancestors have local changes not on the remote:
448 The following changeset(s) or their ancestors have local changes not on the remote:
449 ^[0-9a-f]{12}$ (re)
449 ^[0-9a-f]{12}$ (re)
450 ^[0-9a-f]{12}$ (re)
450 ^[0-9a-f]{12}$ (re)
451 ^[0-9a-f]{12}$ (re)
451 ^[0-9a-f]{12}$ (re)
452 ^[0-9a-f]{12}$ (re)
452 ^[0-9a-f]{12}$ (re)
453 ^[0-9a-f]{12}$ (re)
453 ^[0-9a-f]{12}$ (re)
454 ^[0-9a-f]{12}$ (re)
454 ^[0-9a-f]{12}$ (re)
455 ^[0-9a-f]{12}$ (re)
455 ^[0-9a-f]{12}$ (re)
456 ^[0-9a-f]{12}$ (re)
456 ^[0-9a-f]{12}$ (re)
457 ^[0-9a-f]{12}$ (re)
457 ^[0-9a-f]{12}$ (re)
458 ^[0-9a-f]{12}$ (re)
458 ^[0-9a-f]{12}$ (re)
459 ^[0-9a-f]{12}$ (re)
459 ^[0-9a-f]{12}$ (re)
460 ^[0-9a-f]{12}$ (re)
460 ^[0-9a-f]{12}$ (re)
461 ^[0-9a-f]{12}$ (re)
461 ^[0-9a-f]{12}$ (re)
462 ^[0-9a-f]{12}$ (re)
462 ^[0-9a-f]{12}$ (re)
463 ^[0-9a-f]{12}$ (re)
463 ^[0-9a-f]{12}$ (re)
464 abort: local changes found
464 abort: local changes found
465 (use --force-delete-local-changes to ignore)
465 (use --force-delete-local-changes to ignore)
466 [20]
466 [20]
467 $ cd ..
467 $ cd ..
468
468
469 Test --auto-remove-includes
469 Test --auto-remove-includes
470 $ hg clone --narrow ssh://user@dummy/master narrow-auto-remove -q \
470 $ hg clone --narrow ssh://user@dummy/master narrow-auto-remove -q \
471 > --include d0 --include d1 --include d2
471 > --include d0 --include d1 --include d2
472 $ cd narrow-auto-remove
472 $ cd narrow-auto-remove
473 $ echo a >> d0/f
473 $ echo a >> d0/f
474 $ hg ci -m 'local change to d0'
474 $ hg ci -m 'local change to d0'
475 $ hg co '.^'
475 $ hg co '.^'
476 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
476 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
477 $ echo a >> d1/f
477 $ echo a >> d1/f
478 $ hg ci -m 'local change to d1'
478 $ hg ci -m 'local change to d1'
479 created new head
479 created new head
480 $ hg debugobsolete $(hg log -T '{node}' -r 'desc("local change to d0")')
480 $ hg debugobsolete $(hg log -T '{node}' -r 'desc("local change to d0")')
481 1 new obsolescence markers
481 1 new obsolescence markers
482 obsoleted 1 changesets
482 obsoleted 1 changesets
483 $ echo n | hg tracked --auto-remove-includes --config ui.interactive=yes
483 $ echo n | hg tracked --auto-remove-includes --config ui.interactive=yes
484 comparing with ssh://user@dummy/master
484 comparing with ssh://user@dummy/master
485 searching for changes
485 searching for changes
486 looking for unused includes to remove
486 looking for unused includes to remove
487 path:d0
487 path:d0
488 path:d2
488 path:d2
489 remove these unused includes (Yn)? n
489 remove these unused includes (Yn)? n
490 $ hg tracked --auto-remove-includes
490 $ hg tracked --auto-remove-includes
491 comparing with ssh://user@dummy/master
491 comparing with ssh://user@dummy/master
492 searching for changes
492 searching for changes
493 looking for unused includes to remove
493 looking for unused includes to remove
494 path:d0
494 path:d0
495 path:d2
495 path:d2
496 remove these unused includes (Yn)? y
496 remove these unused includes (Yn)? y
497 looking for local changes to affected paths
497 looking for local changes to affected paths
498 moving unwanted changesets to backup
498 moving unwanted changesets to backup
499 saved backup bundle to $TESTTMP/narrow-auto-remove/.hg/strip-backup/*-narrow.hg (glob)
499 saved backup bundle to $TESTTMP/narrow-auto-remove/.hg/strip-backup/*-narrow.hg (glob)
500 deleting data/d0/f.i
500 deleting data/d0/f.i
501 deleting data/d2/f.i
501 deleting data/d2/f.i
502 deleting meta/d0/00manifest.i (tree !)
502 deleting meta/d0/00manifest.i (tree !)
503 deleting meta/d2/00manifest.i (tree !)
503 deleting meta/d2/00manifest.i (tree !)
504 deleting unwanted files from working copy
504 deleting unwanted files from working copy
505 $ hg tracked
505 $ hg tracked
506 I path:d1
506 I path:d1
507 $ hg files
507 $ hg files
508 d1/f
508 d1/f
509 $ hg tracked --auto-remove-includes
509 $ hg tracked --auto-remove-includes
510 comparing with ssh://user@dummy/master
510 comparing with ssh://user@dummy/master
511 searching for changes
511 searching for changes
512 looking for unused includes to remove
512 looking for unused includes to remove
513 found no unused includes
513 found no unused includes
514 Test --no-backup
514 Test --no-backup
515 $ hg tracked --addinclude d0 --addinclude d2 -q
515 $ hg tracked --addinclude d0 --addinclude d2 -q
516 $ hg unbundle .hg/strip-backup/*-narrow.hg -q
516 $ hg unbundle .hg/strip-backup/*-narrow.hg -q
517 $ rm .hg/strip-backup/*
517 $ rm .hg/strip-backup/*
518 $ hg tracked --auto-remove-includes --no-backup
518 $ hg tracked --auto-remove-includes --no-backup
519 comparing with ssh://user@dummy/master
519 comparing with ssh://user@dummy/master
520 searching for changes
520 searching for changes
521 looking for unused includes to remove
521 looking for unused includes to remove
522 path:d0
522 path:d0
523 path:d2
523 path:d2
524 remove these unused includes (Yn)? y
524 remove these unused includes (Yn)? y
525 looking for local changes to affected paths
525 looking for local changes to affected paths
526 deleting unwanted changesets
526 deleting unwanted changesets
527 deleting data/d0/f.i
527 deleting data/d0/f.i
528 deleting data/d2/f.i
528 deleting data/d2/f.i
529 deleting meta/d0/00manifest.i (tree !)
529 deleting meta/d0/00manifest.i (tree !)
530 deleting meta/d2/00manifest.i (tree !)
530 deleting meta/d2/00manifest.i (tree !)
531 deleting unwanted files from working copy
531 deleting unwanted files from working copy
532 $ ls .hg/strip-backup/
532 $ ls .hg/strip-backup/
533
533
534
534
535 Test removing include while concurrently modifying file in that path
535 Test removing include while concurrently modifying file in that path
536 $ hg clone --narrow ssh://user@dummy/master narrow-concurrent-modify -q \
536 $ hg clone --narrow ssh://user@dummy/master narrow-concurrent-modify -q \
537 > --include d0 --include d1
537 > --include d0 --include d1
538 $ cd narrow-concurrent-modify
538 $ cd narrow-concurrent-modify
539 $ hg --config 'hooks.pretxnopen = echo modified >> d0/f' tracked --removeinclude d0
539 $ hg --config 'hooks.pretxnopen = echo modified >> d0/f' tracked --removeinclude d0
540 comparing with ssh://user@dummy/master
540 comparing with ssh://user@dummy/master
541 searching for changes
541 searching for changes
542 looking for local changes to affected paths
542 looking for local changes to affected paths
543 deleting data/d0/f.i
543 deleting data/d0/f.i
544 deleting meta/d0/00manifest.i (tree !)
544 deleting meta/d0/00manifest.i (tree !)
545 deleting unwanted files from working copy
545 deleting unwanted files from working copy
546 not deleting possibly dirty file d0/f
546 not deleting possibly dirty file d0/f
547
548
549 Test removing `rootfilesin:` include
550 $ hg clone --narrow ssh://user@dummy/master narrow-concurrent-modify -q \
551 > --include rootfilesin:d0 --include rootfilesin:d1
552 $ cd narrow-concurrent-modify
553 #if flat
554 $ hg --config 'hooks.pretxnopen = echo modified >> d0/f' tracked --removeinclude rootfilesin:d0
555 comparing with ssh://user@dummy/master
556 searching for changes
557 looking for local changes to affected paths
558 deleting data/d0/f.i
559 deleting unwanted files from working copy
560 not deleting possibly dirty file d0/f
561 #endif
562 #if tree
563 $ hg --config 'hooks.pretxnopen = echo modified >> d0/f' tracked --removeinclude rootfilesin:d0
564 comparing with ssh://user@dummy/master
565 searching for changes
566 looking for local changes to affected paths
567 deleting data/d0/f.i
568 deleting meta/d0/00manifest.i
569 deleting meta/d1/00manifest.i (known-bad-output !)
570 deleting unwanted files from working copy
571 not deleting possibly dirty file d0/f
572 abort: meta/d1/00manifest@77a3e194be076ae47ba9282271028916012d815c: no node (known-bad-output !)
573 [50]
574 #endif
General Comments 0
You need to be logged in to leave comments. Login now