# HG changeset patch # User Matt Mackall # Date 1244502884 18000 # Node ID f8be48c6b08ccba517295140c2828a36fab92462 # Parent 3507f6c7715ca7016c3276ec9450b645bfa4b435 merge: simplify flag merging code slightly diff -r 3507f6c7715c -r f8be48c6b08c mercurial/merge.py --- a/mercurial/merge.py Mon Jun 08 18:14:44 2009 -0500 +++ b/mercurial/merge.py Mon Jun 08 18:14:44 2009 -0500 @@ -136,24 +136,17 @@ action = [] copy, copied, diverge = {}, {}, {} - def fmerge(f, f2=None, fa=None): + def fmerge(f, f2, fa): """merge flags""" - if not f2: - f2 = f - fa = f a, m, n = ma.flags(fa), m1.flags(f), m2.flags(f2) if m == n: # flags agree return m # unchanged - if m and n: # flags are set but don't agree - if not a: # both differ from parent - r = repo.ui.prompt( - _(" conflicting flags for %s\n" - "(n)one, e(x)ec or sym(l)ink?") % f, - (_("&None"), _("E&xec"), _("Sym&link")), _("n")) - return r != _("n") and r or '' - if m == a: - return n # changed from m to n - return m # changed from n to m + if m and n and not a: # flags set, don't agree, differ from parent + r = repo.ui.prompt( + _(" conflicting flags for %s\n" + "(n)one, e(x)ec or sym(l)ink?") % f, + (_("&None"), _("E&xec"), _("Sym&link")), _("n")) + return r != _("n") and r or '' if m and m != a: # changed from a to m return m if n and n != a: # changed from a to n @@ -180,7 +173,7 @@ if overwrite or backwards: rflags = m2.flags(f) else: - rflags = fmerge(f) + rflags = fmerge(f, f, f) # are files different? if n != m2[f]: a = ma.get(f, nullid)