##// END OF EJS Templates
merge: use labels in subrepo merge...
Simon Farnsworth -
r30060:a145161d default
parent child Browse files
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 source (%s) or (r)emote source (%s)?'
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 %s which remote removed\n'
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 %s which local removed\n'
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 t which local removed
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 t which local removed
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 t which remote removed
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 t which remote removed
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