comparison tests/test-hardlinks.t @ 37415:c2c8962a9465

simplestore: use a custom store for the simple store repo Before, we used the default store, which was based on fncache and dotencode. After attempting to port tests to work with the simple store, I realized that fncache was more trouble than it is worth. This commit implements a proper store type for the simple repo - one that isn't based off fncache. This causes a number of new test failures because of tests expecting the full fncache store filename encoding. I may extend the store format in a subsequent commit to take the filename encoding parts of fncache that we can take (basically everything except hash encoding, since that isn't reversible). But for now, let's use encoded store. As part of this, we implement proper requirements support for repos created with the simple store. This should have been done from the beginning, as a requirement is needed to lock out clients that don't understand a storage format. A new hghave feature advertising the presence of fncache in repos has been added. Most tests touching the fncache are now conditional on that feature. Other tests have added the optional repo requirement to output. Differential Revision: https://phab.mercurial-scm.org/D3095
author Gregory Szorc <gregory.szorc@gmail.com>
date Wed, 04 Apr 2018 14:09:02 -0700
parents cbc4425e81b5
children b95a6fb7ae66
comparison
equal deleted inserted replaced
37414:2d965bfeb8f6 37415:c2c8962a9465
47 $ nlinksdir r1/.hg/store 47 $ nlinksdir r1/.hg/store
48 1 r1/.hg/store/00changelog.i 48 1 r1/.hg/store/00changelog.i
49 1 r1/.hg/store/00manifest.i 49 1 r1/.hg/store/00manifest.i
50 1 r1/.hg/store/data/d1/f2.i 50 1 r1/.hg/store/data/d1/f2.i
51 1 r1/.hg/store/data/f1.i 51 1 r1/.hg/store/data/f1.i
52 1 r1/.hg/store/fncache 52 1 r1/.hg/store/fncache (repofncache !)
53 1 r1/.hg/store/phaseroots 53 1 r1/.hg/store/phaseroots
54 1 r1/.hg/store/undo 54 1 r1/.hg/store/undo
55 1 r1/.hg/store/undo.backup.fncache 55 1 r1/.hg/store/undo.backup.fncache (repofncache !)
56 1 r1/.hg/store/undo.backupfiles 56 1 r1/.hg/store/undo.backupfiles
57 1 r1/.hg/store/undo.phaseroots 57 1 r1/.hg/store/undo.phaseroots
58 58
59 59
60 Create hardlinked clone r2: 60 Create hardlinked clone r2:
87 $ nlinksdir r1/.hg/store 87 $ nlinksdir r1/.hg/store
88 2 r1/.hg/store/00changelog.i 88 2 r1/.hg/store/00changelog.i
89 2 r1/.hg/store/00manifest.i 89 2 r1/.hg/store/00manifest.i
90 2 r1/.hg/store/data/d1/f2.i 90 2 r1/.hg/store/data/d1/f2.i
91 2 r1/.hg/store/data/f1.i 91 2 r1/.hg/store/data/f1.i
92 2 r1/.hg/store/fncache 92 2 r1/.hg/store/fncache (repofncache !)
93 1 r1/.hg/store/phaseroots 93 1 r1/.hg/store/phaseroots
94 1 r1/.hg/store/undo 94 1 r1/.hg/store/undo
95 1 r1/.hg/store/undo.backup.fncache 95 1 r1/.hg/store/undo.backup.fncache (repofncache !)
96 1 r1/.hg/store/undo.backupfiles 96 1 r1/.hg/store/undo.backupfiles
97 1 r1/.hg/store/undo.phaseroots 97 1 r1/.hg/store/undo.phaseroots
98 98
99 $ nlinksdir r2/.hg/store 99 $ nlinksdir r2/.hg/store
100 2 r2/.hg/store/00changelog.i 100 2 r2/.hg/store/00changelog.i
101 2 r2/.hg/store/00manifest.i 101 2 r2/.hg/store/00manifest.i
102 2 r2/.hg/store/data/d1/f2.i 102 2 r2/.hg/store/data/d1/f2.i
103 2 r2/.hg/store/data/f1.i 103 2 r2/.hg/store/data/f1.i
104 2 r2/.hg/store/fncache 104 2 r2/.hg/store/fncache (repofncache !)
105 105
106 Repo r3 should not be hardlinked: 106 Repo r3 should not be hardlinked:
107 107
108 $ nlinksdir r3/.hg/store 108 $ nlinksdir r3/.hg/store
109 1 r3/.hg/store/00changelog.i 109 1 r3/.hg/store/00changelog.i
110 1 r3/.hg/store/00manifest.i 110 1 r3/.hg/store/00manifest.i
111 1 r3/.hg/store/data/d1/f2.i 111 1 r3/.hg/store/data/d1/f2.i
112 1 r3/.hg/store/data/f1.i 112 1 r3/.hg/store/data/f1.i
113 1 r3/.hg/store/fncache 113 1 r3/.hg/store/fncache (repofncache !)
114 1 r3/.hg/store/phaseroots 114 1 r3/.hg/store/phaseroots
115 1 r3/.hg/store/undo 115 1 r3/.hg/store/undo
116 1 r3/.hg/store/undo.backupfiles 116 1 r3/.hg/store/undo.backupfiles
117 1 r3/.hg/store/undo.phaseroots 117 1 r3/.hg/store/undo.phaseroots
118 118
134 1 r3/.hg/store/00changelog.i 134 1 r3/.hg/store/00changelog.i
135 1 r3/.hg/store/00manifest.i 135 1 r3/.hg/store/00manifest.i
136 1 r3/.hg/store/data/d1/f2.d 136 1 r3/.hg/store/data/d1/f2.d
137 1 r3/.hg/store/data/d1/f2.i 137 1 r3/.hg/store/data/d1/f2.i
138 1 r3/.hg/store/data/f1.i 138 1 r3/.hg/store/data/f1.i
139 1 r3/.hg/store/fncache 139 1 r3/.hg/store/fncache (repofncache !)
140 1 r3/.hg/store/phaseroots 140 1 r3/.hg/store/phaseroots
141 1 r3/.hg/store/undo 141 1 r3/.hg/store/undo
142 1 r3/.hg/store/undo.backup.fncache 142 1 r3/.hg/store/undo.backup.fncache (repofncache !)
143 1 r3/.hg/store/undo.backup.phaseroots 143 1 r3/.hg/store/undo.backup.phaseroots
144 1 r3/.hg/store/undo.backupfiles 144 1 r3/.hg/store/undo.backupfiles
145 1 r3/.hg/store/undo.phaseroots 145 1 r3/.hg/store/undo.phaseroots
146 146
147 Push to repo r1 should break up most hardlinks in r2: 147 Push to repo r1 should break up most hardlinks in r2:
167 $ nlinksdir r2/.hg/store 167 $ nlinksdir r2/.hg/store
168 1 r2/.hg/store/00changelog.i 168 1 r2/.hg/store/00changelog.i
169 1 r2/.hg/store/00manifest.i 169 1 r2/.hg/store/00manifest.i
170 1 r2/.hg/store/data/d1/f2.i 170 1 r2/.hg/store/data/d1/f2.i
171 2 r2/.hg/store/data/f1.i 171 2 r2/.hg/store/data/f1.i
172 [12] r2/\.hg/store/fncache (re) 172 [12] r2/\.hg/store/fncache (re) (repofncache !)
173 173
174 #if hardlink-whitelisted 174 #if hardlink-whitelisted repofncache
175 $ nlinksdir r2/.hg/store/fncache 175 $ nlinksdir r2/.hg/store/fncache
176 2 r2/.hg/store/fncache 176 2 r2/.hg/store/fncache
177 #endif 177 #endif
178 178
179 $ hg -R r2 verify 179 $ hg -R r2 verify
197 $ nlinksdir r2/.hg/store 197 $ nlinksdir r2/.hg/store
198 1 r2/.hg/store/00changelog.i 198 1 r2/.hg/store/00changelog.i
199 1 r2/.hg/store/00manifest.i 199 1 r2/.hg/store/00manifest.i
200 1 r2/.hg/store/data/d1/f2.i 200 1 r2/.hg/store/data/d1/f2.i
201 1 r2/.hg/store/data/f1.i 201 1 r2/.hg/store/data/f1.i
202 [12] r2/\.hg/store/fncache (re) 202 [12] r2/\.hg/store/fncache (re) (repofncache !)
203 203
204 #if hardlink-whitelisted 204 #if hardlink-whitelisted repofncache
205 $ nlinksdir r2/.hg/store/fncache 205 $ nlinksdir r2/.hg/store/fncache
206 2 r2/.hg/store/fncache 206 2 r2/.hg/store/fncache
207 #endif 207 #endif
208 208
209 Create a file which exec permissions we will change 209 Create a file which exec permissions we will change
252 2 r4/.hg/store/00manifest.i 252 2 r4/.hg/store/00manifest.i
253 2 r4/.hg/store/data/d1/f2.d 253 2 r4/.hg/store/data/d1/f2.d
254 2 r4/.hg/store/data/d1/f2.i 254 2 r4/.hg/store/data/d1/f2.i
255 2 r4/.hg/store/data/f1.i 255 2 r4/.hg/store/data/f1.i
256 2 r4/.hg/store/data/f3.i 256 2 r4/.hg/store/data/f3.i
257 2 r4/.hg/store/fncache 257 2 r4/.hg/store/fncache (repofncache !)
258 2 r4/.hg/store/phaseroots 258 2 r4/.hg/store/phaseroots
259 2 r4/.hg/store/undo 259 2 r4/.hg/store/undo
260 2 r4/.hg/store/undo.backup.fncache 260 2 r4/.hg/store/undo.backup.fncache (repofncache !)
261 2 r4/.hg/store/undo.backup.phaseroots 261 2 r4/.hg/store/undo.backup.phaseroots
262 2 r4/.hg/store/undo.backupfiles 262 2 r4/.hg/store/undo.backupfiles
263 2 r4/.hg/store/undo.phaseroots 263 2 r4/.hg/store/undo.phaseroots
264 [24] r4/\.hg/undo\.backup\.dirstate (re) 264 [24] r4/\.hg/undo\.backup\.dirstate (re)
265 2 r4/.hg/undo.bookmarks 265 2 r4/.hg/undo.bookmarks
305 2 r4/.hg/store/data/f1.i 305 2 r4/.hg/store/data/f1.i
306 2 r4/.hg/store/data/f3.i 306 2 r4/.hg/store/data/f3.i
307 2 r4/.hg/store/fncache 307 2 r4/.hg/store/fncache
308 2 r4/.hg/store/phaseroots 308 2 r4/.hg/store/phaseroots
309 2 r4/.hg/store/undo 309 2 r4/.hg/store/undo
310 2 r4/.hg/store/undo.backup.fncache 310 2 r4/.hg/store/undo.backup.fncache (repofncache !)
311 2 r4/.hg/store/undo.backup.phaseroots 311 2 r4/.hg/store/undo.backup.phaseroots
312 2 r4/.hg/store/undo.backupfiles 312 2 r4/.hg/store/undo.backupfiles
313 2 r4/.hg/store/undo.phaseroots 313 2 r4/.hg/store/undo.phaseroots
314 [24] r4/\.hg/undo\.backup\.dirstate (re) 314 [24] r4/\.hg/undo\.backup\.dirstate (re)
315 2 r4/.hg/undo.bookmarks 315 2 r4/.hg/undo.bookmarks