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