Show More
@@ -91,7 +91,7 b' def update(repo, node, branchmerge=False' | |||
|
91 | 91 | m1n = repo.changelog.read(p1)[0] |
|
92 | 92 | m2n = repo.changelog.read(p2)[0] |
|
93 | 93 | man = repo.manifest.ancestor(m1n, m2n) |
|
94 | m1 = repo.manifest.read(m1n) | |
|
94 | m1 = repo.manifest.read(m1n).copy() | |
|
95 | 95 | m2 = repo.manifest.read(m2n).copy() |
|
96 | 96 | ma = repo.manifest.read(man) |
|
97 | 97 | |
@@ -115,19 +115,16 b' def update(repo, node, branchmerge=False' | |||
|
115 | 115 | remove = [] |
|
116 | 116 | forget = [] |
|
117 | 117 | |
|
118 | # construct a working dir manifest | |
|
119 | mw = m1.copy() | |
|
118 | # update m1 from working dir | |
|
120 | 119 | umap = dict.fromkeys(unknown) |
|
121 | 120 | |
|
122 | 121 | for f in added + modified + unknown: |
|
123 |
m |
|
|
124 |
m |
|
|
125 | if f in m1: | |
|
126 | mw[f] = m1[f] + "+" | |
|
122 | m1[f] = m1.get(f, nullid) + "+" | |
|
123 | m1.set(f, util.is_exec(repo.wjoin(f), m1.execf(f))) | |
|
127 | 124 | |
|
128 | 125 | for f in deleted + removed: |
|
129 |
if f in m |
|
|
130 |
del m |
|
|
126 | if f in m1: | |
|
127 | del m1[f] | |
|
131 | 128 | |
|
132 | 129 | # If we're jumping between revisions (as opposed to merging), |
|
133 | 130 | # and if neither the working directory nor the target rev has |
@@ -138,13 +135,13 b' def update(repo, node, branchmerge=False' | |||
|
138 | 135 | forget.append(f) |
|
139 | 136 | |
|
140 | 137 | if partial: |
|
141 |
for f in m |
|
|
142 |
if not partial(f): del m |
|
|
138 | for f in m1.keys(): | |
|
139 | if not partial(f): del m1[f] | |
|
143 | 140 | for f in m2.keys(): |
|
144 | 141 | if not partial(f): del m2[f] |
|
145 | 142 | |
|
146 | 143 | # Compare manifests |
|
147 |
for f, n in m |
|
|
144 | for f, n in m1.iteritems(): | |
|
148 | 145 | if f in m2: |
|
149 | 146 | queued = 0 |
|
150 | 147 | |
@@ -154,7 +151,7 b' def update(repo, node, branchmerge=False' | |||
|
154 | 151 | # are both different from the ancestor? |
|
155 | 152 | if not overwrite and n != a and m2[f] != a: |
|
156 | 153 | repo.ui.debug(_(" %s versions differ, resolve\n") % f) |
|
157 |
merge[f] = (fmerge(f, m |
|
|
154 | merge[f] = (fmerge(f, m1, m2, ma), n[:20], m2[f]) | |
|
158 | 155 | queued = 1 |
|
159 | 156 | # are we clobbering? |
|
160 | 157 | # is remote's version newer? |
@@ -169,12 +166,12 b' def update(repo, node, branchmerge=False' | |||
|
169 | 166 | get[f] = (m2.execf(f), m2[f]) |
|
170 | 167 | |
|
171 | 168 | # do we still need to look at mode bits? |
|
172 |
if not queued and m |
|
|
169 | if not queued and m1.execf(f) != m2.execf(f): | |
|
173 | 170 | if overwrite: |
|
174 | 171 | repo.ui.debug(_(" updating permissions for %s\n") % f) |
|
175 | 172 | util.set_exec(repo.wjoin(f), m2.execf(f)) |
|
176 | 173 | else: |
|
177 |
if fmerge(f, m |
|
|
174 | if fmerge(f, m1, m2, ma) != m1.execf(f): | |
|
178 | 175 | repo.ui.debug(_(" updating permissions for %s\n") |
|
179 | 176 | % f) |
|
180 | 177 | util.set_exec(repo.wjoin(f), mode) |
@@ -226,7 +223,7 b' def update(repo, node, branchmerge=False' | |||
|
226 | 223 | else: |
|
227 | 224 | repo.ui.debug(_("local deleted %s\n") % f) |
|
228 | 225 | |
|
229 |
del |
|
|
226 | del m1, m2, ma | |
|
230 | 227 | |
|
231 | 228 | ### apply phase |
|
232 | 229 |
General Comments 0
You need to be logged in to leave comments.
Login now