equal
deleted
inserted
replaced
6 # of the GNU General Public License, incorporated herein by reference. |
6 # of the GNU General Public License, incorporated herein by reference. |
7 |
7 |
8 from node import * |
8 from node import * |
9 from i18n import gettext as _ |
9 from i18n import gettext as _ |
10 from demandload import * |
10 from demandload import * |
11 demandload(globals(), "util os tempfile") |
11 demandload(globals(), "errno util os tempfile") |
12 |
12 |
13 def fmerge(f, local, other, ancestor): |
13 def fmerge(f, local, other, ancestor): |
14 """merge executable flags""" |
14 """merge executable flags""" |
15 a, b, c = ancestor.execf(f), local.execf(f), other.execf(f) |
15 a, b, c = ancestor.execf(f), local.execf(f), other.execf(f) |
16 return ((a^b) | (a^c)) ^ a |
16 return ((a^b) | (a^c)) ^ a |
164 if not queued and m1.execf(f) != m2.execf(f): |
164 if not queued and m1.execf(f) != m2.execf(f): |
165 if overwrite: |
165 if overwrite: |
166 repo.ui.debug(_(" updating permissions for %s\n") % f) |
166 repo.ui.debug(_(" updating permissions for %s\n") % f) |
167 util.set_exec(repo.wjoin(f), m2.execf(f)) |
167 util.set_exec(repo.wjoin(f), m2.execf(f)) |
168 else: |
168 else: |
169 if fmerge(f, m1, m2, ma) != m1.execf(f): |
169 mode = fmerge(f, m1, m2, ma) |
|
170 if mode != m1.execf(f): |
170 repo.ui.debug(_(" updating permissions for %s\n") |
171 repo.ui.debug(_(" updating permissions for %s\n") |
171 % f) |
172 % f) |
172 util.set_exec(repo.wjoin(f), mode) |
173 util.set_exec(repo.wjoin(f), mode) |
173 del m2[f] |
174 del m2[f] |
174 elif f in ma: |
175 elif f in ma: |