Show More
@@ -10,6 +10,11 b' from i18n import gettext as _' | |||||
10 | from demandload import * |
|
10 | from demandload import * | |
11 | demandload(globals(), "util os tempfile") |
|
11 | demandload(globals(), "util os tempfile") | |
12 |
|
12 | |||
|
13 | def fmerge(f, local, other, ancestor): | |||
|
14 | """merge executable flags""" | |||
|
15 | a, b, c = ancestor.execf(f), local.execf(f), other.execf(f) | |||
|
16 | return ((a^b) | (a^c)) ^ a | |||
|
17 | ||||
13 | def merge3(repo, fn, my, other, p1, p2): |
|
18 | def merge3(repo, fn, my, other, p1, p2): | |
14 | """perform a 3-way merge in the working directory""" |
|
19 | """perform a 3-way merge in the working directory""" | |
15 |
|
20 | |||
@@ -144,11 +149,7 b' def update(repo, node, branchmerge=False' | |||||
144 | # are both different from the ancestor? |
|
149 | # are both different from the ancestor? | |
145 | if n != a and m2[f] != a: |
|
150 | if n != a and m2[f] != a: | |
146 | repo.ui.debug(_(" %s versions differ, resolve\n") % f) |
|
151 | repo.ui.debug(_(" %s versions differ, resolve\n") % f) | |
147 | # merge executable bits |
|
152 | merge[f] = (fmerge(f, mw, m2, ma), m1.get(f, nullid), m2[f]) | |
148 | # "if we changed or they changed, change in merge" |
|
|||
149 | a, b, c = ma.execf(f), mw.execf(f), m2.execf(f) |
|
|||
150 | mode = ((a^b) | (a^c)) ^ a |
|
|||
151 | merge[f] = (mode, m1.get(f, nullid), m2[f]) |
|
|||
152 | s = 1 |
|
153 | s = 1 | |
153 | # are we clobbering? |
|
154 | # are we clobbering? | |
154 | # is remote's version newer? |
|
155 | # is remote's version newer? | |
@@ -167,9 +168,7 b' def update(repo, node, branchmerge=False' | |||||
167 | repo.ui.debug(_(" updating permissions for %s\n") % f) |
|
168 | repo.ui.debug(_(" updating permissions for %s\n") % f) | |
168 | util.set_exec(repo.wjoin(f), m2.execf(f)) |
|
169 | util.set_exec(repo.wjoin(f), m2.execf(f)) | |
169 | else: |
|
170 | else: | |
170 |
|
|
171 | if fmerge(f, mw, m2, ma) != mw.execf(f): | |
171 | mode = ((a^b) | (a^c)) ^ a |
|
|||
172 | if mode != b: |
|
|||
173 | repo.ui.debug(_(" updating permissions for %s\n") |
|
172 | repo.ui.debug(_(" updating permissions for %s\n") | |
174 | % f) |
|
173 | % f) | |
175 | util.set_exec(repo.wjoin(f), mode) |
|
174 | util.set_exec(repo.wjoin(f), mode) |
General Comments 0
You need to be logged in to leave comments.
Login now