143 $ cd .. |
155 $ cd .. |
144 |
156 |
145 |
157 |
146 Systematic testing of merges involving largefiles: |
158 Systematic testing of merges involving largefiles: |
147 |
159 |
148 Ancestor: normal Parent: normal= Parent: large result: large |
160 Ancestor: normal Parent: normal-id Parent: large result: large |
149 Ancestor: normal Parent: normal2 Parent: large result: ? |
161 Ancestor: normal Parent: normal2 Parent: large result: ? |
150 Ancestor: large Parent: large= Parent: normal result: normal |
162 Ancestor: large Parent: large-id Parent: normal result: normal |
151 Ancestor: large Parent: large2 Parent: normal result: ? |
163 Ancestor: large Parent: large2 Parent: normal result: ? |
152 |
164 |
153 All cases should try merging both ways. |
165 All cases should try merging both ways. |
154 "=" means same file content. |
|
155 |
166 |
156 Prepare test repo: |
167 Prepare test repo: |
157 |
168 |
158 $ hg init merges |
169 $ hg init merges |
159 $ cd merges |
170 $ cd merges |
160 $ touch f1 |
171 |
161 $ hg ci -Aqm "0-root" --config extensions.largefiles=! |
172 prepare cases with "normal" ancestor: |
162 |
173 |
163 Ensure that .hg/largefiles isn't created before largefiles are added |
174 $ hg up -qr null |
164 #if unix-permissions |
|
165 $ chmod 555 .hg |
|
166 #endif |
|
167 $ hg status |
|
168 #if unix-permissions |
|
169 $ chmod 755 .hg |
|
170 #endif |
|
171 |
|
172 $ test -f .hg/largefiles |
|
173 [1] |
|
174 |
|
175 ancestor is "normal": |
|
176 $ echo normal > f |
175 $ echo normal > f |
177 $ hg ci -Aqm "1-normal-ancestor" |
176 $ hg ci -Aqm "normal-ancestor" |
|
177 $ hg tag -l "normal-ancestor" |
178 $ touch f2 |
178 $ touch f2 |
179 $ hg ci -Aqm "2-normal-unchanged" |
179 $ hg ci -Aqm "normal-id" |
180 $ hg tag -l "normal=" |
180 $ hg tag -l "normal-id" |
181 $ echo normal2 > f |
181 $ echo normal2 > f |
182 $ hg ci -m "3-normal2" |
182 $ hg ci -m "normal2" |
183 $ hg tag -l "normal2" |
183 $ hg tag -l "normal2" |
184 $ hg up -qr 1 |
184 $ hg up -qr "normal-ancestor" |
185 $ hg rm f |
185 $ hg rm f |
186 $ echo large > f |
186 $ echo large > f |
187 $ hg add --large f |
187 $ hg add --large f |
188 $ hg ci -qm "4-normal-to-large" |
188 $ hg ci -qm "large" |
189 $ hg tag -l "large" |
189 $ hg tag -l "large" |
190 |
190 |
|
191 prepare cases with "large" ancestor: |
|
192 |
191 $ hg up -qr null |
193 $ hg up -qr null |
192 |
|
193 ancestor is "large": |
|
194 $ echo large > f |
194 $ echo large > f |
195 $ hg add --large f |
195 $ hg add --large f |
196 $ hg ci -qm "5-large-ancestor" |
196 $ hg ci -qm "large-ancestor" |
|
197 $ hg tag -l "large-ancestor" |
197 $ touch f2 |
198 $ touch f2 |
198 $ hg ci -Aqm "6-large-unchanged" |
199 $ hg ci -Aqm "large-id" |
199 $ hg tag -l "large=" |
200 $ hg tag -l "large-id" |
200 $ echo large2 > f |
201 $ echo large2 > f |
201 $ hg ci -m "7-large2" |
202 $ hg ci -m "large2" |
202 $ hg tag -l "large2" |
203 $ hg tag -l "large2" |
203 $ hg up -qr 5 |
204 $ hg up -qr "large-ancestor" |
204 $ hg rm f |
205 $ hg rm f |
205 $ echo normal > f |
206 $ echo normal > f |
206 $ hg ci -qAm "8-large-to-normal" |
207 $ hg ci -qAm "normal" |
207 $ hg tag -l "normal" |
208 $ hg tag -l "normal" |
208 |
209 |
209 Ancestor: normal Parent: normal= Parent: large result: large |
210 $ hg log -GT '{tags}' |
210 |
211 @ normal tip |
211 $ hg up -Cqr normal= |
212 | |
|
213 | o large2 |
|
214 | | |
|
215 | o large-id |
|
216 |/ |
|
217 o large-ancestor |
|
218 |
|
219 o large |
|
220 | |
|
221 | o normal2 |
|
222 | | |
|
223 | o normal-id |
|
224 |/ |
|
225 o normal-ancestor |
|
226 |
|
227 |
|
228 |
|
229 Ancestor: normal Parent: normal-id Parent: large result: large |
|
230 |
|
231 $ hg up -Cqr normal-id |
212 $ hg merge -r large |
232 $ hg merge -r large |
213 getting changed largefiles |
233 getting changed largefiles |
214 1 largefiles updated, 0 removed |
234 1 largefiles updated, 0 removed |
215 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
235 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
216 (branch merge, don't forget to commit) |
236 (branch merge, don't forget to commit) |
218 large |
238 large |
219 |
239 |
220 swap |
240 swap |
221 |
241 |
222 $ hg up -Cqr large |
242 $ hg up -Cqr large |
223 $ hg merge -r normal= |
243 $ hg merge -r normal-id |
224 getting changed largefiles |
244 getting changed largefiles |
225 0 largefiles updated, 0 removed |
245 0 largefiles updated, 0 removed |
226 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
246 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
227 (branch merge, don't forget to commit) |
247 (branch merge, don't forget to commit) |
228 $ cat f |
248 $ cat f |
305 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
325 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
306 (branch merge, don't forget to commit) |
326 (branch merge, don't forget to commit) |
307 $ cat f |
327 $ cat f |
308 large |
328 large |
309 |
329 |
310 Ancestor: large Parent: large= Parent: normal result: normal |
330 Ancestor: large Parent: large-id Parent: normal result: normal |
311 |
331 |
312 $ hg up -Cqr large= |
332 $ hg up -Cqr large-id |
313 $ hg merge -r normal |
333 $ hg merge -r normal |
314 getting changed largefiles |
334 getting changed largefiles |
315 0 largefiles updated, 0 removed |
335 0 largefiles updated, 0 removed |
316 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
336 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
317 (branch merge, don't forget to commit) |
337 (branch merge, don't forget to commit) |