131 action.append((f, "g", m2.execf(f), m2[f])) |
131 action.append((f, "g", m2.execf(f), m2[f])) |
132 # local is newer, not overwrite, check mode bits |
132 # local is newer, not overwrite, check mode bits |
133 elif fmerge(f) != m1.execf(f): |
133 elif fmerge(f) != m1.execf(f): |
134 ui.debug(_(" updating permissions for %s\n") % f) |
134 ui.debug(_(" updating permissions for %s\n") % f) |
135 action.append((f, "e", m2.execf(f))) |
135 action.append((f, "e", m2.execf(f))) |
136 |
|
137 # contents same, check mode bits |
136 # contents same, check mode bits |
138 elif m1.execf(f) != m2.execf(f): |
137 elif m1.execf(f) != m2.execf(f): |
139 if overwrite or fmerge(f) != m1.execf(f) |
138 if overwrite or fmerge(f) != m1.execf(f): |
140 ui.debug(_(" updating permissions for %s\n") % f) |
139 ui.debug(_(" updating permissions for %s\n") % f) |
141 action.append((f, "e", m2.execf(f))) |
140 action.append((f, "e", m2.execf(f))) |
142 del m2[f] |
141 del m2[f] |
143 elif f in ma: |
142 elif f in ma: |
144 if n != ma[f] and not overwrite: |
143 if n != ma[f] and not overwrite: |
149 else: |
148 else: |
150 ui.debug(_("other deleted %s\n") % f) |
149 ui.debug(_("other deleted %s\n") % f) |
151 action.append((f, "r")) |
150 action.append((f, "r")) |
152 else: |
151 else: |
153 # file is created on branch or in working directory |
152 # file is created on branch or in working directory |
154 if overwrite and n[20:] != "u": |
153 if (overwrite and n[20:] != "u") or (backwards and not n[20:]): |
155 ui.debug(_("remote deleted %s, clobbering\n") % f) |
154 ui.debug(_("remote deleted %s, clobbering\n") % f) |
156 action.append((f, "r")) |
155 action.append((f, "r")) |
157 elif not n[20:]: # same as parent |
156 else: |
158 if backwards: |
157 ui.debug(_("local created %s, keeping\n") % f) |
159 ui.debug(_("remote deleted %s\n") % f) |
|
160 action.append((f, "r")) |
|
161 else: |
|
162 ui.debug(_("local modified %s, keeping\n") % f) |
|
163 else: |
|
164 ui.debug(_("working dir created %s, keeping\n") % f) |
|
165 |
158 |
166 for f, n in m2.iteritems(): |
159 for f, n in m2.iteritems(): |
167 if f in ma: |
160 if f in ma: |
168 if overwrite or backwards: |
161 if overwrite or backwards: |
169 ui.debug(_("local deleted %s, recreating\n") % f) |
162 ui.debug(_("local deleted %s, recreating\n") % f) |