##// END OF EJS Templates
merge: convert actions to list
Matt Mackall -
r3100:87ea5a71 default
parent child Browse files
Show More
@@ -107,7 +107,7 b' def update(repo, node, branchmerge=False'
107 107 repo.ui.debug(_(" ancestor %s local %s remote %s\n") %
108 108 (short(p1), short(p2), short(pa)))
109 109
110 action = {}
110 action = []
111 111 forget = []
112 112
113 113 # update m1 from working dir
@@ -146,19 +146,19 b' def update(repo, node, branchmerge=False'
146 146 # are both different from the ancestor?
147 147 if not overwrite and n != a and m2[f] != a:
148 148 repo.ui.debug(_(" %s versions differ, resolve\n") % f)
149 action[f] = (fmerge(f, m1, m2, ma), n[:20], m2[f])
149 action.append((f, fmerge(f, m1, m2, ma), n[:20], m2[f]))
150 150 queued = 1
151 151 # are we clobbering?
152 152 # is remote's version newer?
153 153 # or are we going back in time and clean?
154 154 elif overwrite or m2[f] != a or (backwards and not n[20:]):
155 155 repo.ui.debug(_(" remote %s is newer, get\n") % f)
156 action[f] = (m2.execf(f), m2[f], None)
156 action.append((f, m2.execf(f), m2[f], None))
157 157 queued = 1
158 158 elif n[20:] in ("u","a"):
159 159 # this unknown file is the same as the checkout
160 160 # we need to reset the dirstate if the file was added
161 action[f] = (m2.execf(f), m2[f], None)
161 action.append((f, m2.execf(f), m2[f], None))
162 162
163 163 # do we still need to look at mode bits?
164 164 if not queued and m1.execf(f) != m2.execf(f):
@@ -179,19 +179,19 b' def update(repo, node, branchmerge=False'
179 179 (_(" local changed %s which remote deleted\n") % f) +
180 180 _("(k)eep or (d)elete?"), _("[kd]"), _("k"))
181 181 if r == _("d"):
182 action[f] = (None, None, None)
182 action.append((f, None, None, None))
183 183 else:
184 184 repo.ui.debug(_("other deleted %s\n") % f)
185 action[f] = (None, None, None)
185 action.append((f, None, None, None))
186 186 else:
187 187 # file is created on branch or in working directory
188 188 if overwrite and n[20:] != "u":
189 189 repo.ui.debug(_("remote deleted %s, clobbering\n") % f)
190 action[f] = (None, None, None)
190 action.append((f, None, None, None))
191 191 elif not n[20:]: # same as parent
192 192 if backwards:
193 193 repo.ui.debug(_("remote deleted %s\n") % f)
194 action[f] = (None, None, None)
194 action.append((f, None, None, None))
195 195 else:
196 196 repo.ui.debug(_("local modified %s, keeping\n") % f)
197 197 else:
@@ -207,14 +207,14 b' def update(repo, node, branchmerge=False'
207 207 (_("remote changed %s which local deleted\n") % f) +
208 208 _("(k)eep or (d)elete?"), _("[kd]"), _("k"))
209 209 if r == _("k"):
210 action[f] = (m2.execf(f), n, None)
210 action.append((f, m2.execf(f), n, None))
211 211 elif f not in ma:
212 212 repo.ui.debug(_("remote created %s\n") % f)
213 action[f] = (m2.execf(f), n, None)
213 action.append((f, m2.execf(f), n, None))
214 214 else:
215 215 if overwrite or backwards:
216 216 repo.ui.debug(_("local deleted %s, recreating\n") % f)
217 action[f] = (m2.execf(f), n, None)
217 action.append((f, m2.execf(f), n, None))
218 218 else:
219 219 repo.ui.debug(_("local deleted %s\n") % f)
220 220
@@ -235,10 +235,9 b' def update(repo, node, branchmerge=False'
235 235
236 236 # update files
237 237 updated, merged, removed, unresolved = 0, 0, 0, 0
238 files = action.keys()
239 files.sort()
240 for f in files:
241 flag, my, other = action[f]
238 action.sort()
239 for a in action:
240 f, flag, my, other = a
242 241 if f[0] == "/":
243 242 continue
244 243 if not my:
@@ -268,10 +267,8 b' def update(repo, node, branchmerge=False'
268 267 if not partial:
269 268 repo.dirstate.setparents(p1, p2)
270 269 repo.dirstate.forget(forget)
271 files = action.keys()
272 files.sort()
273 for f in files:
274 flag, my, other = action[f]
270 for a in action:
271 f, flag, my, other = a
275 272 if not my:
276 273 if branchmerge:
277 274 repo.dirstate.update([f], 'r')
General Comments 0
You need to be logged in to leave comments. Login now