Mercurial > hg > mercurial-crew-with-dirclash
comparison hgext/mq.py @ 4332:4e5e1638b165
mq: don't abort when merging a patch that removes files
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Mon, 09 Apr 2007 04:24:17 -0300 |
parents | e1cdf5f6386e |
children | 1cc5fc1d0994 7ae02bce8de2 |
comparison
equal
deleted
inserted
replaced
4331:ce52deed83bc | 4332:4e5e1638b165 |
---|---|
455 | 455 |
456 (patcherr, files, fuzz) = self.patch(repo, pf) | 456 (patcherr, files, fuzz) = self.patch(repo, pf) |
457 patcherr = not patcherr | 457 patcherr = not patcherr |
458 | 458 |
459 if merge and files: | 459 if merge and files: |
460 # Mark as merged and update dirstate parent info | 460 # Mark as removed/merged and update dirstate parent info |
461 repo.dirstate.update(repo.dirstate.filterfiles(files.keys()), 'm') | 461 removed = [] |
462 merged = [] | |
463 for f in files: | |
464 if os.path.exists(repo.dirstate.wjoin(f)): | |
465 merged.append(f) | |
466 else: | |
467 removed.append(f) | |
468 repo.dirstate.update(repo.dirstate.filterfiles(removed), 'r') | |
469 repo.dirstate.update(repo.dirstate.filterfiles(merged), 'm') | |
462 p1, p2 = repo.dirstate.parents() | 470 p1, p2 = repo.dirstate.parents() |
463 repo.dirstate.setparents(p1, merge) | 471 repo.dirstate.setparents(p1, merge) |
464 files = patch.updatedir(self.ui, repo, files, wlock=wlock) | 472 files = patch.updatedir(self.ui, repo, files, wlock=wlock) |
465 n = repo.commit(files, message, user, date, force=1, lock=lock, | 473 n = repo.commit(files, message, user, date, force=1, lock=lock, |
466 wlock=wlock) | 474 wlock=wlock) |