##// END OF EJS Templates
merge: make calculateupdates() return file->action dict...
Martin von Zweigbergk -
r23641:a7a0f32a default
parent child Browse files
Show More
@@ -435,15 +435,13 b' def overridecalculateupdates(origfn, rep'
435
435
436 # Convert to dictionary with filename as key and action as value.
436 # Convert to dictionary with filename as key and action as value.
437 lfiles = set()
437 lfiles = set()
438 actionbyfile = {}
438 actionbyfile = actions
439 for m, l in actions.iteritems():
439 for f in actionbyfile:
440 for f, args, msg in l:
440 splitstandin = f and lfutil.splitstandin(f)
441 actionbyfile[f] = m, args, msg
441 if splitstandin in p1:
442 splitstandin = f and lfutil.splitstandin(f)
442 lfiles.add(splitstandin)
443 if splitstandin in p1:
443 elif lfutil.standin(f) in p1:
444 lfiles.add(splitstandin)
444 lfiles.add(f)
445 elif lfutil.standin(f) in p1:
446 lfiles.add(f)
447
445
448 for lfile in lfiles:
446 for lfile in lfiles:
449 standin = lfutil.standin(lfile)
447 standin = lfutil.standin(lfile)
@@ -489,14 +487,7 b' def overridecalculateupdates(origfn, rep'
489 actionbyfile[lfile] = ('g', largs, 'replaces standin')
487 actionbyfile[lfile] = ('g', largs, 'replaces standin')
490 actionbyfile[standin] = ('r', None, 'replaced by non-standin')
488 actionbyfile[standin] = ('r', None, 'replaced by non-standin')
491
489
492 # Convert back to dictionary-of-lists format
490 return actionbyfile, diverge, renamedelete
493 for l in actions.itervalues():
494 l[:] = []
495 actions['lfmr'] = []
496 for f, (m, args, msg) in actionbyfile.iteritems():
497 actions[m].append((f, args, msg))
498
499 return actions, diverge, renamedelete
500
491
501 def mergerecordupdates(orig, repo, actions, branchmerge):
492 def mergerecordupdates(orig, repo, actions, branchmerge):
502 if 'lfmr' in actions:
493 if 'lfmr' in actions:
@@ -621,12 +621,6 b' def calculateupdates(repo, wctx, mctx, a'
621 fractions = _forgetremoved(wctx, mctx, branchmerge)
621 fractions = _forgetremoved(wctx, mctx, branchmerge)
622 actions.update(fractions)
622 actions.update(fractions)
623
623
624 # Convert to dictionary-of-lists format
625 actionbyfile = actions
626 actions = dict((m, []) for m in 'a f g cd dc r dm dg m e k'.split())
627 for f, (m, args, msg) in actionbyfile.iteritems():
628 actions[m].append((f, args, msg))
629
630 return actions, diverge, renamedelete
624 return actions, diverge, renamedelete
631
625
632 def batchremove(repo, actions):
626 def batchremove(repo, actions):
@@ -1069,9 +1063,15 b' def update(repo, node, branchmerge, forc'
1069 followcopies = True
1063 followcopies = True
1070
1064
1071 ### calculate phase
1065 ### calculate phase
1072 actions, diverge, renamedelete = calculateupdates(
1066 actionbyfile, diverge, renamedelete = calculateupdates(
1073 repo, wc, p2, pas, branchmerge, force, partial, mergeancestor,
1067 repo, wc, p2, pas, branchmerge, force, partial, mergeancestor,
1074 followcopies)
1068 followcopies)
1069 # Convert to dictionary-of-lists format
1070 actions = dict((m, []) for m in 'a f g cd dc r dm dg m e k'.split())
1071 for f, (m, args, msg) in actionbyfile.iteritems():
1072 if m not in actions:
1073 actions[m] = []
1074 actions[m].append((f, args, msg))
1075
1075
1076 if not util.checkcase(repo.path):
1076 if not util.checkcase(repo.path):
1077 # check collision between files only in p2 for clean update
1077 # check collision between files only in p2 for clean update
General Comments 0
You need to be logged in to leave comments. Login now