Show More
@@ -1150,7 +1150,7 b' def applyupdates(repo, actions, wctx, mc' | |||
|
1150 | 1150 | numupdates = sum(len(l) for m, l in actions.items() if m != 'k') |
|
1151 | 1151 | |
|
1152 | 1152 | if [a for a in actions['r'] if a[0] == '.hgsubstate']: |
|
1153 | subrepo.submerge(repo, wctx, mctx, wctx, overwrite) | |
|
1153 | subrepo.submerge(repo, wctx, mctx, wctx, overwrite, labels) | |
|
1154 | 1154 | |
|
1155 | 1155 | # remove in parallel (must come first) |
|
1156 | 1156 | z = 0 |
@@ -1168,7 +1168,7 b' def applyupdates(repo, actions, wctx, mc' | |||
|
1168 | 1168 | updated = len(actions['g']) |
|
1169 | 1169 | |
|
1170 | 1170 | if [a for a in actions['g'] if a[0] == '.hgsubstate']: |
|
1171 | subrepo.submerge(repo, wctx, mctx, wctx, overwrite) | |
|
1171 | subrepo.submerge(repo, wctx, mctx, wctx, overwrite, labels) | |
|
1172 | 1172 | |
|
1173 | 1173 | # forget (manifest only, just log it) (must come first) |
|
1174 | 1174 | for f, args, msg in actions['f']: |
@@ -1253,7 +1253,7 b' def applyupdates(repo, actions, wctx, mc' | |||
|
1253 | 1253 | progress(_updating, z, item=f, total=numupdates, unit=_files) |
|
1254 | 1254 | if f == '.hgsubstate': # subrepo states need updating |
|
1255 | 1255 | subrepo.submerge(repo, wctx, mctx, wctx.ancestor(mctx), |
|
1256 | overwrite) | |
|
1256 | overwrite, labels) | |
|
1257 | 1257 | continue |
|
1258 | 1258 | audit(f) |
|
1259 | 1259 | complete, r = ms.preresolve(f, wctx) |
@@ -26,6 +26,7 b' from . import (' | |||
|
26 | 26 | config, |
|
27 | 27 | error, |
|
28 | 28 | exchange, |
|
29 | filemerge, | |
|
29 | 30 | match as matchmod, |
|
30 | 31 | node, |
|
31 | 32 | pathutil, |
@@ -174,7 +175,7 b' def writestate(repo, state):' | |||
|
174 | 175 | if state[s][1] != nullstate[1]] |
|
175 | 176 | repo.wwrite('.hgsubstate', ''.join(lines), '') |
|
176 | 177 | |
|
177 | def submerge(repo, wctx, mctx, actx, overwrite): | |
|
178 | def submerge(repo, wctx, mctx, actx, overwrite, labels=None): | |
|
178 | 179 | """delegated from merge.applyupdates: merging of .hgsubstate file |
|
179 | 180 | in working context, merging context and ancestor context""" |
|
180 | 181 | if mctx == actx: # backwards? |
@@ -200,6 +201,8 b' def submerge(repo, wctx, mctx, actx, ove' | |||
|
200 | 201 | a = ld |
|
201 | 202 | |
|
202 | 203 | if s in s2: |
|
204 | prompts = filemerge.partextras(labels) | |
|
205 | prompts['s'] = s | |
|
203 | 206 | r = s2[s] |
|
204 | 207 | if ld == r or r == a: # no change or local is newer |
|
205 | 208 | sm[s] = l |
@@ -209,10 +212,13 b' def submerge(repo, wctx, mctx, actx, ove' | |||
|
209 | 212 | wctx.sub(s).get(r, overwrite) |
|
210 | 213 | sm[s] = r |
|
211 | 214 | elif ld[0] != r[0]: # sources differ |
|
215 | prompts['lo'] = l[0] | |
|
216 | prompts['ro'] = r[0] | |
|
212 | 217 | if repo.ui.promptchoice( |
|
213 | _(' subrepository sources for %s differ\n' | |
|
214 |
'use (l)ocal |
|
|
215 | '$$ &Local $$ &Remote') % (s, l[0], r[0]), 0): | |
|
218 | _(' subrepository sources for %(s)s differ\n' | |
|
219 | 'use (l)ocal%(l)s source (%(lo)s)' | |
|
220 | ' or (r)emote%(o)s source (%(ro)s)?' | |
|
221 | '$$ &Local $$ &Remote') % prompts, 0): | |
|
216 | 222 | debug(s, "prompt changed, get", r) |
|
217 | 223 | wctx.sub(s).get(r, overwrite) |
|
218 | 224 | sm[s] = r |
@@ -223,12 +229,14 b' def submerge(repo, wctx, mctx, actx, ove' | |||
|
223 | 229 | else: |
|
224 | 230 | debug(s, "both sides changed") |
|
225 | 231 | srepo = wctx.sub(s) |
|
232 | prompts['sl'] = srepo.shortid(l[1]) | |
|
233 | prompts['sr'] = srepo.shortid(r[1]) | |
|
226 | 234 | option = repo.ui.promptchoice( |
|
227 | _(' subrepository %s diverged (local revision: %s, ' | |
|
228 | 'remote revision: %s)\n' | |
|
229 | '(M)erge, keep (l)ocal or keep (r)emote?' | |
|
235 | _(' subrepository %(s)s diverged (local revision: %(sl)s, ' | |
|
236 | 'remote revision: %(sr)s)\n' | |
|
237 | '(M)erge, keep (l)ocal%(l)s or keep (r)emote%(o)s?' | |
|
230 | 238 | '$$ &Merge $$ &Local $$ &Remote') |
|
231 | % (s, srepo.shortid(l[1]), srepo.shortid(r[1])), 0) | |
|
239 | % prompts, 0) | |
|
232 | 240 | if option == 0: |
|
233 | 241 | wctx.sub(s).merge(r) |
|
234 | 242 | sm[s] = l |
@@ -249,9 +257,10 b' def submerge(repo, wctx, mctx, actx, ove' | |||
|
249 | 257 | continue |
|
250 | 258 | else: |
|
251 | 259 | if repo.ui.promptchoice( |
|
252 |
_(' local changed subrepository % |
|
|
260 | _(' local%(l)s changed subrepository %(s)s' | |
|
261 | ' which remote%(o)s removed\n' | |
|
253 | 262 | 'use (c)hanged version or (d)elete?' |
|
254 | '$$ &Changed $$ &Delete') % s, 0): | |
|
263 | '$$ &Changed $$ &Delete') % prompts, 0): | |
|
255 | 264 | debug(s, "prompt remove") |
|
256 | 265 | wctx.sub(s).remove() |
|
257 | 266 | |
@@ -264,9 +273,10 b' def submerge(repo, wctx, mctx, actx, ove' | |||
|
264 | 273 | sm[s] = r |
|
265 | 274 | elif r != sa[s]: |
|
266 | 275 | if repo.ui.promptchoice( |
|
267 |
_(' remote changed subrepository % |
|
|
276 | _(' remote%(o)s changed subrepository %(s)s' | |
|
277 | ' which local%(l)s removed\n' | |
|
268 | 278 | 'use (c)hanged version or (d)elete?' |
|
269 | '$$ &Changed $$ &Delete') % s, 0) == 0: | |
|
279 | '$$ &Changed $$ &Delete') % prompts, 0) == 0: | |
|
270 | 280 | debug(s, "prompt recreate", r) |
|
271 | 281 | mctx.sub(s).get(r) |
|
272 | 282 | sm[s] = r |
@@ -546,7 +546,7 b' Test that the internal linear merging wo' | |||
|
546 | 546 | > l |
|
547 | 547 | > EOF |
|
548 | 548 | subrepository sub diverged (local revision: f74e50bd9e55, remote revision: d65e59e952a9) |
|
549 | (M)erge, keep (l)ocal or keep (r)emote? m | |
|
549 | (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | |
|
550 | 550 | subrepository sources for sub differ (in checked out version) |
|
551 | 551 | use (l)ocal source (f74e50bd9e55) or (r)emote source (d65e59e952a9)? r |
|
552 | 552 | remote turned local largefile large2 into a normal file |
@@ -507,7 +507,7 b' Sticky subrepositories, file changes' | |||
|
507 | 507 | $ cd .. |
|
508 | 508 | $ hg update 4 |
|
509 | 509 | subrepository s diverged (local revision: da5f5b1, remote revision: aa84837) |
|
510 | (M)erge, keep (l)ocal or keep (r)emote? m | |
|
510 | (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | |
|
511 | 511 | subrepository sources for s differ |
|
512 | 512 | use (l)ocal source (da5f5b1) or (r)emote source (aa84837)? l |
|
513 | 513 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
@@ -533,7 +533,7 b' Sticky subrepository, revision updates' | |||
|
533 | 533 | $ cd .. |
|
534 | 534 | $ hg update 1 |
|
535 | 535 | subrepository s diverged (local revision: 32a3438, remote revision: da5f5b1) |
|
536 | (M)erge, keep (l)ocal or keep (r)emote? m | |
|
536 | (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | |
|
537 | 537 | subrepository sources for s differ (in checked out version) |
|
538 | 538 | use (l)ocal source (32a3438) or (r)emote source (da5f5b1)? l |
|
539 | 539 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
@@ -555,7 +555,7 b' Sticky subrepository, file changes and r' | |||
|
555 | 555 | 1+ |
|
556 | 556 | $ hg update 7 |
|
557 | 557 | subrepository s diverged (local revision: 32a3438, remote revision: 32a3438) |
|
558 | (M)erge, keep (l)ocal or keep (r)emote? m | |
|
558 | (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | |
|
559 | 559 | subrepository sources for s differ |
|
560 | 560 | use (l)ocal source (32a3438) or (r)emote source (32a3438)? l |
|
561 | 561 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
@@ -310,7 +310,7 b' Sticky subrepositories, file changes' | |||
|
310 | 310 | $ cd .. |
|
311 | 311 | $ hg update tip |
|
312 | 312 | subrepository s diverged (local revision: 2, remote revision: 3) |
|
313 | (M)erge, keep (l)ocal or keep (r)emote? m | |
|
313 | (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | |
|
314 | 314 | subrepository sources for s differ |
|
315 | 315 | use (l)ocal source (2) or (r)emote source (3)? l |
|
316 | 316 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
@@ -341,7 +341,7 b' Sticky subrepository, revision updates' | |||
|
341 | 341 | $ cd .. |
|
342 | 342 | $ hg update 1 |
|
343 | 343 | subrepository s diverged (local revision: 3, remote revision: 2) |
|
344 | (M)erge, keep (l)ocal or keep (r)emote? m | |
|
344 | (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | |
|
345 | 345 | subrepository sources for s differ (in checked out version) |
|
346 | 346 | use (l)ocal source (1) or (r)emote source (2)? l |
|
347 | 347 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
@@ -364,7 +364,7 b' Sticky subrepository, file changes and r' | |||
|
364 | 364 | 1+ |
|
365 | 365 | $ hg update tip |
|
366 | 366 | subrepository s diverged (local revision: 3, remote revision: 3) |
|
367 | (M)erge, keep (l)ocal or keep (r)emote? m | |
|
367 | (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | |
|
368 | 368 | subrepository sources for s differ |
|
369 | 369 | use (l)ocal source (1) or (r)emote source (3)? l |
|
370 | 370 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
@@ -398,7 +398,7 b' Test subrepo already at intended revisio' | |||
|
398 | 398 | $ cd .. |
|
399 | 399 | $ hg update 1 |
|
400 | 400 | subrepository s diverged (local revision: 3, remote revision: 2) |
|
401 | (M)erge, keep (l)ocal or keep (r)emote? m | |
|
401 | (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | |
|
402 | 402 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
403 | 403 | $ hg id -n |
|
404 | 404 | 1+ |
@@ -303,6 +303,7 b' merge tests' | |||
|
303 | 303 | subrepo merge e45c8b14af55+ f94576341bcf 1831e14459c4 |
|
304 | 304 | subrepo t: both sides changed |
|
305 | 305 | subrepository t diverged (local revision: 20a0db6fbf6c, remote revision: 7af322bc1198) |
|
306 | starting 4 threads for background file closing (?) | |
|
306 | 307 | (M)erge, keep (l)ocal or keep (r)emote? m |
|
307 | 308 | merging subrepo t |
|
308 | 309 | searching for copies back to rev 2 |
@@ -310,7 +311,6 b' merge tests' | |||
|
310 | 311 | branchmerge: True, force: False, partial: False |
|
311 | 312 | ancestor: 6747d179aa9a, local: 20a0db6fbf6c+, remote: 7af322bc1198 |
|
312 | 313 | preserving t for resolve of t |
|
313 | starting 4 threads for background file closing (?) | |
|
314 | 314 | t: versions differ -> m (premerge) |
|
315 | 315 | picked tool ':merge' for t (binary False symlink False changedelete False) |
|
316 | 316 | merging t |
@@ -349,7 +349,7 b' 11: remove subrepo t' | |||
|
349 | 349 | local removed, remote changed, keep changed |
|
350 | 350 | |
|
351 | 351 | $ hg merge 6 |
|
352 |
remote changed subrepository |
|
|
352 | remote changed subrepository s which local removed | |
|
353 | 353 | use (c)hanged version or (d)elete? c |
|
354 | 354 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
355 | 355 | (branch merge, don't forget to commit) |
@@ -380,7 +380,7 b' local removed, remote changed, keep remo' | |||
|
380 | 380 | $ hg merge --config ui.interactive=true 6 <<EOF |
|
381 | 381 | > d |
|
382 | 382 | > EOF |
|
383 |
remote changed subrepository |
|
|
383 | remote changed subrepository s which local removed | |
|
384 | 384 | use (c)hanged version or (d)elete? d |
|
385 | 385 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
386 | 386 | (branch merge, don't forget to commit) |
@@ -404,7 +404,7 b' local changed, remote removed, keep chan' | |||
|
404 | 404 | $ hg co -C 6 |
|
405 | 405 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
406 | 406 | $ hg merge 11 |
|
407 |
local changed subrepository |
|
|
407 | local changed subrepository s which remote removed | |
|
408 | 408 | use (c)hanged version or (d)elete? c |
|
409 | 409 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
410 | 410 | (branch merge, don't forget to commit) |
@@ -436,7 +436,7 b' local changed, remote removed, keep remo' | |||
|
436 | 436 | $ hg merge --config ui.interactive=true 11 <<EOF |
|
437 | 437 | > d |
|
438 | 438 | > EOF |
|
439 |
local changed subrepository |
|
|
439 | local changed subrepository s which remote removed | |
|
440 | 440 | use (c)hanged version or (d)elete? d |
|
441 | 441 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
442 | 442 | (branch merge, don't forget to commit) |
@@ -1129,7 +1129,7 b" Check that merge of a new subrepo doesn'" | |||
|
1129 | 1129 | adding file changes |
|
1130 | 1130 | added 1 changesets with 2 changes to 2 files |
|
1131 | 1131 | subrepository sub/repo diverged (local revision: f42d5c7504a8, remote revision: 46cd4aac504c) |
|
1132 | (M)erge, keep (l)ocal or keep (r)emote? m | |
|
1132 | (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | |
|
1133 | 1133 | pulling subrepo sub/repo from $TESTTMP/issue1852a/sub/repo (glob) |
|
1134 | 1134 | searching for changes |
|
1135 | 1135 | adding changesets |
@@ -1238,11 +1238,11 b' Sticky subrepositories, file changes' | |||
|
1238 | 1238 | e95bcfa18a35+ |
|
1239 | 1239 | $ hg update tip |
|
1240 | 1240 | subrepository s diverged (local revision: fc627a69481f, remote revision: 12a213df6fa9) |
|
1241 | (M)erge, keep (l)ocal or keep (r)emote? m | |
|
1241 | (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | |
|
1242 | 1242 | subrepository sources for s differ |
|
1243 | 1243 | use (l)ocal source (fc627a69481f) or (r)emote source (12a213df6fa9)? l |
|
1244 | 1244 | subrepository t diverged (local revision: e95bcfa18a35, remote revision: 52c0adc0515a) |
|
1245 | (M)erge, keep (l)ocal or keep (r)emote? m | |
|
1245 | (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | |
|
1246 | 1246 | subrepository sources for t differ |
|
1247 | 1247 | use (l)ocal source (e95bcfa18a35) or (r)emote source (52c0adc0515a)? l |
|
1248 | 1248 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
@@ -1271,9 +1271,9 b' Sticky subrepository, revision updates' | |||
|
1271 | 1271 | $ cd .. |
|
1272 | 1272 | $ hg update 10 |
|
1273 | 1273 | subrepository s diverged (local revision: 12a213df6fa9, remote revision: fc627a69481f) |
|
1274 | (M)erge, keep (l)ocal or keep (r)emote? m | |
|
1274 | (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | |
|
1275 | 1275 | subrepository t diverged (local revision: 52c0adc0515a, remote revision: 20a0db6fbf6c) |
|
1276 | (M)erge, keep (l)ocal or keep (r)emote? m | |
|
1276 | (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | |
|
1277 | 1277 | subrepository sources for t differ (in checked out version) |
|
1278 | 1278 | use (l)ocal source (7af322bc1198) or (r)emote source (20a0db6fbf6c)? l |
|
1279 | 1279 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
@@ -1297,11 +1297,11 b' Sticky subrepository, file changes and r' | |||
|
1297 | 1297 | 7af322bc1198+ |
|
1298 | 1298 | $ hg update tip |
|
1299 | 1299 | subrepository s diverged (local revision: 12a213df6fa9, remote revision: 12a213df6fa9) |
|
1300 | (M)erge, keep (l)ocal or keep (r)emote? m | |
|
1300 | (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | |
|
1301 | 1301 | subrepository sources for s differ |
|
1302 | 1302 | use (l)ocal source (02dcf1d70411) or (r)emote source (12a213df6fa9)? l |
|
1303 | 1303 | subrepository t diverged (local revision: 52c0adc0515a, remote revision: 52c0adc0515a) |
|
1304 | (M)erge, keep (l)ocal or keep (r)emote? m | |
|
1304 | (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | |
|
1305 | 1305 | subrepository sources for t differ |
|
1306 | 1306 | use (l)ocal source (7af322bc1198) or (r)emote source (52c0adc0515a)? l |
|
1307 | 1307 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
@@ -1329,7 +1329,7 b' Test subrepo already at intended revisio' | |||
|
1329 | 1329 | $ cd .. |
|
1330 | 1330 | $ hg update 11 |
|
1331 | 1331 | subrepository s diverged (local revision: 12a213df6fa9, remote revision: fc627a69481f) |
|
1332 | (M)erge, keep (l)ocal or keep (r)emote? m | |
|
1332 | (M)erge, keep (l)ocal [working copy] or keep (r)emote [destination]? m | |
|
1333 | 1333 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1334 | 1334 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
1335 | 1335 | $ hg id -n |
General Comments 0
You need to be logged in to leave comments.
Login now