comparison mercurial/merge.py @ 2827:56f99f5aab34

Merge: refactor err and failedmerge -> unresolved
author Matt Mackall <mpm@selenic.com>
date Tue, 08 Aug 2006 09:26:00 -0500
parents 3aeab7bb5adc
children 0f787997e3c2
comparison
equal deleted inserted replaced
2826:3aeab7bb5adc 2827:56f99f5aab34
54 wlock = repo.wlock() 54 wlock = repo.wlock()
55 55
56 pl = repo.dirstate.parents() 56 pl = repo.dirstate.parents()
57 if not force and pl[1] != nullid: 57 if not force and pl[1] != nullid:
58 raise util.Abort(_("outstanding uncommitted merges")) 58 raise util.Abort(_("outstanding uncommitted merges"))
59
60 err = False
61 59
62 p1, p2 = pl[0], node 60 p1, p2 = pl[0], node
63 pa = repo.changelog.ancestor(p1, p2) 61 pa = repo.changelog.ancestor(p1, p2)
64 m1n = repo.changelog.read(p1)[0] 62 m1n = repo.changelog.read(p1)[0]
65 m2n = repo.changelog.read(p2)[0] 63 m2n = repo.changelog.read(p2)[0]
274 repo.dirstate.update([f], 'n', st_mtime=-1) 272 repo.dirstate.update([f], 'n', st_mtime=-1)
275 else: 273 else:
276 repo.dirstate.update([f], 'n') 274 repo.dirstate.update([f], 'n')
277 275
278 # merge the tricky bits 276 # merge the tricky bits
279 failedmerge = [] 277 unresolved = []
280 files = merge.keys() 278 files = merge.keys()
281 files.sort() 279 files.sort()
282 for f in files: 280 for f in files:
283 repo.ui.status(_("merging %s\n") % f) 281 repo.ui.status(_("merging %s\n") % f)
284 my, other, flag = merge[f] 282 my, other, flag = merge[f]
285 ret = merge3(repo, f, my, other, xp1, xp2) 283 ret = merge3(repo, f, my, other, xp1, xp2)
286 if ret: 284 if ret:
287 err = True 285 unresolved.append(f)
288 failedmerge.append(f)
289 util.set_exec(repo.wjoin(f), flag) 286 util.set_exec(repo.wjoin(f), flag)
290 if not partial: 287 if not partial:
291 if branchmerge: 288 if branchmerge:
292 # We've done a branch merge, mark this file as merged 289 # We've done a branch merge, mark this file as merged
293 # so that we properly record the merger later 290 # so that we properly record the merger later
320 if not partial: 317 if not partial:
321 repo.dirstate.setparents(p1, p2) 318 repo.dirstate.setparents(p1, p2)
322 319
323 if show_stats: 320 if show_stats:
324 stats = ((len(get), _("updated")), 321 stats = ((len(get), _("updated")),
325 (len(merge) - len(failedmerge), _("merged")), 322 (len(merge) - len(unresolved), _("merged")),
326 (len(remove), _("removed")), 323 (len(remove), _("removed")),
327 (len(failedmerge), _("unresolved"))) 324 (len(unresolved), _("unresolved")))
328 note = ", ".join([_("%d files %s") % s for s in stats]) 325 note = ", ".join([_("%d files %s") % s for s in stats])
329 repo.ui.status("%s\n" % note) 326 repo.ui.status("%s\n" % note)
330 if not partial: 327 if not partial:
331 if branchmerge: 328 if branchmerge:
332 if failedmerge: 329 if unresolved:
333 repo.ui.status(_("There are unresolved merges," 330 repo.ui.status(_("There are unresolved merges,"
334 " you can redo the full merge using:\n" 331 " you can redo the full merge using:\n"
335 " hg update -C %s\n" 332 " hg update -C %s\n"
336 " hg merge %s\n" 333 " hg merge %s\n"
337 % (repo.changelog.rev(p1), 334 % (repo.changelog.rev(p1),
338 repo.changelog.rev(p2)))) 335 repo.changelog.rev(p2))))
339 elif remind: 336 elif remind:
340 repo.ui.status(_("(branch merge, don't forget to commit)\n")) 337 repo.ui.status(_("(branch merge, don't forget to commit)\n"))
341 elif failedmerge: 338 elif unresolved:
342 repo.ui.status(_("There are unresolved merges with" 339 repo.ui.status(_("There are unresolved merges with"
343 " locally modified files.\n")) 340 " locally modified files.\n"))
344 341
345 repo.hook('update', parent1=xp1, parent2=xxp2, error=int(err)) 342 repo.hook('update', parent1=xp1, parent2=xxp2, error=len(unresolved))
346 return err 343 return len(unresolved)
347 344