Mercurial > public > mercurial-scm > hg
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): |