comparison mercurial/merge.py @ 8749:69caf50da4a0

merge: refactor some initialization, drop backwards var
author Matt Mackall <mpm@selenic.com>
date Mon, 08 Jun 2009 18:14:44 -0500
parents f325574dad1a
children 9b8733291dd0
comparison
equal deleted inserted replaced
8748:f325574dad1a 8749:69caf50da4a0
127 127
128 repo.ui.note(_("resolving manifests\n")) 128 repo.ui.note(_("resolving manifests\n"))
129 repo.ui.debug(_(" overwrite %s partial %s\n") % (overwrite, bool(partial))) 129 repo.ui.debug(_(" overwrite %s partial %s\n") % (overwrite, bool(partial)))
130 repo.ui.debug(_(" ancestor %s local %s remote %s\n") % (pa, p1, p2)) 130 repo.ui.debug(_(" ancestor %s local %s remote %s\n") % (pa, p1, p2))
131 131
132 action = []
133 copy, copied, diverge = {}, {}, {}
132 m1 = p1.manifest() 134 m1 = p1.manifest()
133 m2 = p2.manifest() 135 m2 = p2.manifest()
134 backwards = (pa == p2)
135
136 if overwrite:
137 ma = m1
138 elif backwards:
139 ma = p1.p1().manifest()
140 else:
141 ma = pa.manifest()
142
143 action = []
144 copy, copied, diverge = {}, {}, {}
145 136
146 def fmerge(f, f2, fa): 137 def fmerge(f, f2, fa):
147 """merge flags""" 138 """merge flags"""
148 a, m, n = ma.flags(fa), m1.flags(f), m2.flags(f2) 139 a, m, n = ma.flags(fa), m1.flags(f), m2.flags(f2)
149 if m == n: # flags agree 140 if m == n: # flags agree
162 153
163 def act(msg, m, f, *args): 154 def act(msg, m, f, *args):
164 repo.ui.debug(" %s: %s -> %s\n" % (f, msg, m)) 155 repo.ui.debug(" %s: %s -> %s\n" % (f, msg, m))
165 action.append((f, m) + args) 156 action.append((f, m) + args)
166 157
167 if pa and not (backwards or overwrite): 158 if overwrite:
168 if repo.ui.configbool("merge", "followcopies", True): 159 ma = m1
160 elif p2 == pa: # backwards
161 ma = p1.p1().manifest()
162 else:
163 ma = pa.manifest()
164 if pa and repo.ui.configbool("merge", "followcopies", True):
169 dirs = repo.ui.configbool("merge", "followdirs", True) 165 dirs = repo.ui.configbool("merge", "followdirs", True)
170 copy, diverge = copies.copies(repo, p1, p2, pa, dirs) 166 copy, diverge = copies.copies(repo, p1, p2, pa, dirs)
171 copied = set(copy.values()) 167 copied = set(copy.values())
172 for of, fl in diverge.iteritems(): 168 for of, fl in diverge.iteritems():
173 act("divergent renames", "dr", of, fl) 169 act("divergent renames", "dr", of, fl)