comparison mercurial/patch.py @ 14453:ea3d548132cc

patch: do not patch unknown files (issue752)
author Patrick Mezard <pmezard@gmail.com>
date Fri, 27 May 2011 21:50:11 +0200
parents ee574cfd0c32
children 1ffeeb91c55d
comparison
equal deleted inserted replaced
14452:ee574cfd0c32 14453:ea3d548132cc
443 self.similarity = similarity 443 self.similarity = similarity
444 self.removed = set() 444 self.removed = set()
445 self.changed = set() 445 self.changed = set()
446 self.copied = [] 446 self.copied = []
447 447
448 def _checkknown(self, fname):
449 if self.repo.dirstate[fname] == '?' and self.exists(fname):
450 raise PatchError(_('cannot patch %s: file is not tracked') % fname)
451
448 def setfile(self, fname, data, mode, copysource): 452 def setfile(self, fname, data, mode, copysource):
453 self._checkknown(fname)
449 super(workingbackend, self).setfile(fname, data, mode, copysource) 454 super(workingbackend, self).setfile(fname, data, mode, copysource)
450 if copysource is not None: 455 if copysource is not None:
451 self.copied.append((copysource, fname)) 456 self.copied.append((copysource, fname))
452 self.changed.add(fname) 457 self.changed.add(fname)
453 458
454 def unlink(self, fname): 459 def unlink(self, fname):
460 self._checkknown(fname)
455 super(workingbackend, self).unlink(fname) 461 super(workingbackend, self).unlink(fname)
456 self.removed.add(fname) 462 self.removed.add(fname)
457 self.changed.add(fname) 463 self.changed.add(fname)
458 464
459 def close(self): 465 def close(self):