Mercurial > public > mercurial-scm > hg-stable
diff 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 |
line wrap: on
line diff
--- a/mercurial/patch.py Fri May 27 21:50:10 2011 +0200 +++ b/mercurial/patch.py Fri May 27 21:50:11 2011 +0200 @@ -445,13 +445,19 @@ self.changed = set() self.copied = [] + def _checkknown(self, fname): + if self.repo.dirstate[fname] == '?' and self.exists(fname): + raise PatchError(_('cannot patch %s: file is not tracked') % fname) + def setfile(self, fname, data, mode, copysource): + self._checkknown(fname) super(workingbackend, self).setfile(fname, data, mode, copysource) if copysource is not None: self.copied.append((copysource, fname)) self.changed.add(fname) def unlink(self, fname): + self._checkknown(fname) super(workingbackend, self).unlink(fname) self.removed.add(fname) self.changed.add(fname)