Mercurial > public > mercurial-scm > hg
comparison mercurial/merge.py @ 3162:a9e75b371315
merge: move partial filtering out of manifest merge
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Tue, 26 Sep 2006 16:21:52 -0500 |
parents | 84561ea8711e |
children | e67c22bc8bba |
comparison
equal
deleted
inserted
replaced
3161:84561ea8711e | 3162:a9e75b371315 |
---|---|
169 for mf in match[of]: | 169 for mf in match[of]: |
170 checkpair(c, mf, m1) | 170 checkpair(c, mf, m1) |
171 | 171 |
172 return copy | 172 return copy |
173 | 173 |
174 def manifestmerge(ui, m1, m2, ma, overwrite, backwards, partial): | 174 def filtermanifest(man, partial): |
175 if partial: | |
176 for k in man.keys(): | |
177 if not partial(k): del man[k] | |
178 | |
179 def manifestmerge(ui, m1, m2, ma, overwrite, backwards): | |
175 """ | 180 """ |
176 Merge manifest m1 with m2 using ancestor ma and generate merge action list | 181 Merge manifest m1 with m2 using ancestor ma and generate merge action list |
177 """ | 182 """ |
178 | 183 |
179 def fmerge(f): | 184 def fmerge(f): |
184 action = [] | 189 action = [] |
185 | 190 |
186 def act(msg, f, m, *args): | 191 def act(msg, f, m, *args): |
187 ui.debug(" %s: %s -> %s\n" % (f, msg, m)) | 192 ui.debug(" %s: %s -> %s\n" % (f, msg, m)) |
188 action.append((f, m) + args) | 193 action.append((f, m) + args) |
189 | |
190 # Filter manifests | |
191 if partial: | |
192 for f in m1.keys(): | |
193 if not partial(f): del m1[f] | |
194 for f in m2.keys(): | |
195 if not partial(f): del m2[f] | |
196 | 194 |
197 # Compare manifests | 195 # Compare manifests |
198 for f, n in m1.iteritems(): | 196 for f, n in m1.iteritems(): |
199 if f in m2: | 197 if f in m2: |
200 # are files different? | 198 # are files different? |
361 | 359 |
362 action = [] | 360 action = [] |
363 copy = {} | 361 copy = {} |
364 | 362 |
365 m1 = workingmanifest(repo, m1, status) | 363 m1 = workingmanifest(repo, m1, status) |
364 filtermanifest(m1, partial) | |
365 filtermanifest(m2, partial) | |
366 | 366 |
367 if not force: | 367 if not force: |
368 checkunknown(repo, m2, status) | 368 checkunknown(repo, m2, status) |
369 if not branchmerge: | 369 if not branchmerge: |
370 action += forgetremoved(m2, status) | 370 action += forgetremoved(m2, status) |
371 if not (backwards or overwrite): | 371 if not (backwards or overwrite): |
372 copy = findcopies(repo, m1, m2, repo.changelog.rev(pa)) | 372 copy = findcopies(repo, m1, m2, repo.changelog.rev(pa)) |
373 | 373 |
374 action += manifestmerge(repo.ui, m1, m2, ma, overwrite, backwards, partial) | 374 action += manifestmerge(repo.ui, m1, m2, ma, overwrite, backwards) |
375 del m1, m2, ma | 375 del m1, m2, ma |
376 | 376 |
377 ### apply phase | 377 ### apply phase |
378 | 378 |
379 if not branchmerge: | 379 if not branchmerge: |