##// END OF EJS Templates
merge: swap file and mode args for act()
Matt Mackall -
r3307:f009a6f1 default
parent child Browse files
Show More
@@ -192,7 +192,7 b' def manifestmerge(repo, p1, p2, pa, over'
192
192
193 action = []
193 action = []
194
194
195 def act(msg, f, m, *args):
195 def act(msg, m, f, *args):
196 repo.ui.debug(" %s: %s -> %s\n" % (f, msg, m))
196 repo.ui.debug(" %s: %s -> %s\n" % (f, msg, m))
197 action.append((f, m) + args)
197 action.append((f, m) + args)
198
198
@@ -210,43 +210,43 b' def manifestmerge(repo, p1, p2, pa, over'
210 a = ma.get(f, nullid)
210 a = ma.get(f, nullid)
211 # are both different from the ancestor?
211 # are both different from the ancestor?
212 if not overwrite and n != a and m2[f] != a:
212 if not overwrite and n != a and m2[f] != a:
213 act("versions differ", f, "m", fmerge(f))
213 act("versions differ", "m", f, fmerge(f))
214 # are we clobbering?
214 # are we clobbering?
215 # is remote's version newer?
215 # is remote's version newer?
216 # or are we going back in time and clean?
216 # or are we going back in time and clean?
217 elif overwrite or m2[f] != a or (backwards and not n[20:]):
217 elif overwrite or m2[f] != a or (backwards and not n[20:]):
218 act("remote is newer", f, "g", m2.execf(f))
218 act("remote is newer", "g", f, m2.execf(f))
219 # local is newer, not overwrite, check mode bits
219 # local is newer, not overwrite, check mode bits
220 elif fmerge(f) != m1.execf(f):
220 elif fmerge(f) != m1.execf(f):
221 act("update permissions", f, "e", m2.execf(f))
221 act("update permissions", "e", f, m2.execf(f))
222 # contents same, check mode bits
222 # contents same, check mode bits
223 elif m1.execf(f) != m2.execf(f):
223 elif m1.execf(f) != m2.execf(f):
224 if overwrite or fmerge(f) != m1.execf(f):
224 if overwrite or fmerge(f) != m1.execf(f):
225 act("update permissions", f, "e", m2.execf(f))
225 act("update permissions", "e", f, m2.execf(f))
226 elif f in copy:
226 elif f in copy:
227 f2 = copy[f]
227 f2 = copy[f]
228 if f in ma: # case 3,20 A/B/A
228 if f in ma: # case 3,20 A/B/A
229 act("remote moved",
229 act("remote moved", "c",
230 f, "c", f2, f2, fmerge(f, f2, f), True)
230 f, f2, f2, fmerge(f, f2, f), True)
231 else:
231 else:
232 if f2 in m1: # case 2 A,B/B/B
232 if f2 in m1: # case 2 A,B/B/B
233 act("local copied",
233 act("local copied", "c",
234 f, "c", f2, f, fmerge(f, f2, f2), False)
234 f, f2, f, fmerge(f, f2, f2), False)
235 else: # case 4,21 A/B/B
235 else: # case 4,21 A/B/B
236 act("local moved",
236 act("local moved", "c",
237 f, "c", f2, f, fmerge(f, f2, f2), False)
237 f, f2, f, fmerge(f, f2, f2), False)
238 elif f in ma:
238 elif f in ma:
239 if n != ma[f] and not overwrite:
239 if n != ma[f] and not overwrite:
240 if repo.ui.prompt(
240 if repo.ui.prompt(
241 (_(" local changed %s which remote deleted\n") % f) +
241 (_(" local changed %s which remote deleted\n") % f) +
242 _("(k)eep or (d)elete?"), _("[kd]"), _("k")) == _("d"):
242 _("(k)eep or (d)elete?"), _("[kd]"), _("k")) == _("d"):
243 act("prompt delete", f, "r")
243 act("prompt delete", "r", f)
244 else:
244 else:
245 act("other deleted", f, "r")
245 act("other deleted", "r", f)
246 else:
246 else:
247 # file is created on branch or in working directory
247 # file is created on branch or in working directory
248 if (overwrite and n[20:] != "u") or (backwards and not n[20:]):
248 if (overwrite and n[20:] != "u") or (backwards and not n[20:]):
249 act("remote deleted", f, "r")
249 act("remote deleted", "r", f)
250
250
251 for f, n in m2.iteritems():
251 for f, n in m2.iteritems():
252 if partial and not partial(f):
252 if partial and not partial(f):
@@ -258,17 +258,17 b' def manifestmerge(repo, p1, p2, pa, over'
258 if f2 not in m2: # already seen
258 if f2 not in m2: # already seen
259 continue
259 continue
260 # rename case 1, A/A,B/A
260 # rename case 1, A/A,B/A
261 act("remote copied", f2, "c", f, f, fmerge(f2, f, f2), False)
261 act("remote copied", "c", f2, f, f, fmerge(f2, f, f2), False)
262 elif f in ma:
262 elif f in ma:
263 if overwrite or backwards:
263 if overwrite or backwards:
264 act("recreating", f, "g", m2.execf(f))
264 act("recreating", "g", f, m2.execf(f))
265 elif n != ma[f]:
265 elif n != ma[f]:
266 if repo.ui.prompt(
266 if repo.ui.prompt(
267 (_("remote changed %s which local deleted\n") % f) +
267 (_("remote changed %s which local deleted\n") % f) +
268 _("(k)eep or (d)elete?"), _("[kd]"), _("k")) == _("k"):
268 _("(k)eep or (d)elete?"), _("[kd]"), _("k")) == _("k"):
269 act("prompt recreating", f, "g", m2.execf(f))
269 act("prompt recreating", "g", f, m2.execf(f))
270 else:
270 else:
271 act("remote created", f, "g", m2.execf(f))
271 act("remote created", "g", f, m2.execf(f))
272
272
273 return action
273 return action
274
274
General Comments 0
You need to be logged in to leave comments. Login now