Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/patch.py @ 19155:0b3689a08df5
patch: use scmutil.marktouched instead of scmutil.addremove
addremove required paths relative to the cwd, which meant a lot of extra code
that transformed paths into relative ones. That code is now gone as well.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Thu, 04 Apr 2013 13:45:21 -0700 |
parents | 6b827d84d286 |
children | 9e8298a324ac |
comparison
equal
deleted
inserted
replaced
19154:0c7cf411b390 | 19155:0b3689a08df5 |
---|---|
479 self.removed.add(fname) | 479 self.removed.add(fname) |
480 self.changed.add(fname) | 480 self.changed.add(fname) |
481 | 481 |
482 def close(self): | 482 def close(self): |
483 wctx = self.repo[None] | 483 wctx = self.repo[None] |
484 addremoved = set(self.changed) | 484 changed = set(self.changed) |
485 for src, dst in self.copied: | 485 for src, dst in self.copied: |
486 scmutil.dirstatecopy(self.ui, self.repo, wctx, src, dst) | 486 scmutil.dirstatecopy(self.ui, self.repo, wctx, src, dst) |
487 if self.removed: | 487 if self.removed: |
488 wctx.forget(sorted(self.removed)) | 488 wctx.forget(sorted(self.removed)) |
489 for f in self.removed: | 489 for f in self.removed: |
490 if f not in self.repo.dirstate: | 490 if f not in self.repo.dirstate: |
491 # File was deleted and no longer belongs to the | 491 # File was deleted and no longer belongs to the |
492 # dirstate, it was probably marked added then | 492 # dirstate, it was probably marked added then |
493 # deleted, and should not be considered by | 493 # deleted, and should not be considered by |
494 # addremove(). | 494 # marktouched(). |
495 addremoved.discard(f) | 495 changed.discard(f) |
496 if addremoved: | 496 if changed: |
497 cwd = self.repo.getcwd() | 497 scmutil.marktouched(self.repo, changed, self.similarity) |
498 if cwd: | |
499 addremoved = [util.pathto(self.repo.root, cwd, f) | |
500 for f in addremoved] | |
501 scmutil.addremove(self.repo, addremoved, similarity=self.similarity) | |
502 return sorted(self.changed) | 498 return sorted(self.changed) |
503 | 499 |
504 class filestore(object): | 500 class filestore(object): |
505 def __init__(self, maxsize=None): | 501 def __init__(self, maxsize=None): |
506 self.opener = None | 502 self.opener = None |
1395 ui.warn(pf + '\n') | 1391 ui.warn(pf + '\n') |
1396 printed_file = True | 1392 printed_file = True |
1397 ui.warn(line + '\n') | 1393 ui.warn(line + '\n') |
1398 finally: | 1394 finally: |
1399 if files: | 1395 if files: |
1400 cfiles = list(files) | 1396 scmutil.marktouched(repo, files, similarity) |
1401 cwd = repo.getcwd() | |
1402 if cwd: | |
1403 cfiles = [util.pathto(repo.root, cwd, f) | |
1404 for f in cfiles] | |
1405 scmutil.addremove(repo, cfiles, similarity=similarity) | |
1406 code = fp.close() | 1397 code = fp.close() |
1407 if code: | 1398 if code: |
1408 raise PatchError(_("patch command failed: %s") % | 1399 raise PatchError(_("patch command failed: %s") % |
1409 util.explainexit(code)[0]) | 1400 util.explainexit(code)[0]) |
1410 return fuzz | 1401 return fuzz |