Show More
@@ -164,12 +164,7 b' def findcopies(repo, m1, m2, limit):' | |||||
164 |
|
164 | |||
165 | return copy |
|
165 | return copy | |
166 |
|
166 | |||
167 | def filtermanifest(man, partial): |
|
167 | def manifestmerge(ui, m1, m2, ma, overwrite, backwards, partial): | |
168 | if partial: |
|
|||
169 | for k in man.keys(): |
|
|||
170 | if not partial(k): del man[k] |
|
|||
171 |
|
||||
172 | def manifestmerge(ui, m1, m2, ma, overwrite, backwards): |
|
|||
173 | """ |
|
168 | """ | |
174 | Merge manifest m1 with m2 using ancestor ma and generate merge action list |
|
169 | Merge manifest m1 with m2 using ancestor ma and generate merge action list | |
175 | """ |
|
170 | """ | |
@@ -187,6 +182,8 b' def manifestmerge(ui, m1, m2, ma, overwr' | |||||
187 |
|
182 | |||
188 | # Compare manifests |
|
183 | # Compare manifests | |
189 | for f, n in m1.iteritems(): |
|
184 | for f, n in m1.iteritems(): | |
|
185 | if partial and not partial(f): | |||
|
186 | continue | |||
190 | if f in m2: |
|
187 | if f in m2: | |
191 | # are files different? |
|
188 | # are files different? | |
192 | if n != m2[f]: |
|
189 | if n != m2[f]: | |
@@ -206,7 +203,6 b' def manifestmerge(ui, m1, m2, ma, overwr' | |||||
206 | elif m1.execf(f) != m2.execf(f): |
|
203 | elif m1.execf(f) != m2.execf(f): | |
207 | if overwrite or fmerge(f) != m1.execf(f): |
|
204 | if overwrite or fmerge(f) != m1.execf(f): | |
208 | act("update permissions", f, "e", m2.execf(f)) |
|
205 | act("update permissions", f, "e", m2.execf(f)) | |
209 | del m2[f] |
|
|||
210 | elif f in ma: |
|
206 | elif f in ma: | |
211 | if n != ma[f] and not overwrite: |
|
207 | if n != ma[f] and not overwrite: | |
212 | if ui.prompt( |
|
208 | if ui.prompt( | |
@@ -221,6 +217,10 b' def manifestmerge(ui, m1, m2, ma, overwr' | |||||
221 | act("remote deleted", f, "r") |
|
217 | act("remote deleted", f, "r") | |
222 |
|
218 | |||
223 | for f, n in m2.iteritems(): |
|
219 | for f, n in m2.iteritems(): | |
|
220 | if partial and not partial(f): | |||
|
221 | continue | |||
|
222 | if f in m1: | |||
|
223 | continue | |||
224 | if f in ma: |
|
224 | if f in ma: | |
225 | if overwrite or backwards: |
|
225 | if overwrite or backwards: | |
226 | act("recreating", f, "g", m2.execf(f), n) |
|
226 | act("recreating", f, "g", m2.execf(f), n) | |
@@ -337,8 +337,8 b' def update(repo, node, branchmerge=False' | |||||
337 | if wc.modified() or wc.added() or wc.removed(): |
|
337 | if wc.modified() or wc.added() or wc.removed(): | |
338 | raise util.Abort(_("outstanding uncommitted changes")) |
|
338 | raise util.Abort(_("outstanding uncommitted changes")) | |
339 |
|
339 | |||
340 |
m1 = wc.manifest() |
|
340 | m1 = wc.manifest() | |
341 |
m2 = p2.manifest() |
|
341 | m2 = p2.manifest() | |
342 | ma = pa.manifest() |
|
342 | ma = pa.manifest() | |
343 |
|
343 | |||
344 | # resolve the manifest to determine which files |
|
344 | # resolve the manifest to determine which files | |
@@ -351,9 +351,6 b' def update(repo, node, branchmerge=False' | |||||
351 | action = [] |
|
351 | action = [] | |
352 | copy = {} |
|
352 | copy = {} | |
353 |
|
353 | |||
354 | filtermanifest(m1, partial) |
|
|||
355 | filtermanifest(m2, partial) |
|
|||
356 |
|
||||
357 | if not force: |
|
354 | if not force: | |
358 | checkunknown(repo, m2, wc) |
|
355 | checkunknown(repo, m2, wc) | |
359 | if not branchmerge: |
|
356 | if not branchmerge: | |
@@ -361,8 +358,7 b' def update(repo, node, branchmerge=False' | |||||
361 | if not (backwards or overwrite): |
|
358 | if not (backwards or overwrite): | |
362 | copy = findcopies(repo, m1, m2, pa.rev()) |
|
359 | copy = findcopies(repo, m1, m2, pa.rev()) | |
363 |
|
360 | |||
364 | action += manifestmerge(repo.ui, m1, m2, ma, overwrite, backwards) |
|
361 | action += manifestmerge(repo.ui, m1, m2, ma, overwrite, backwards, partial) | |
365 | del m1, m2, ma |
|
|||
366 |
|
362 | |||
367 | ### apply phase |
|
363 | ### apply phase | |
368 |
|
364 |
General Comments 0
You need to be logged in to leave comments.
Login now