# HG changeset patch # User Dirkjan Ochtman # Date 2008-08-31 10:05:29 # Node ID c8c9ce0ed3eed4ce5f3b87f1b4b62c6cd3d39b77 # Parent 359e93ceee3acdc5ba197547a61e204571355dc9 # Parent 381a892159d994ed0c0e9bcef4962617d4e79ef9 merge with crew-stable diff --git a/hgext/record.py b/hgext/record.py --- a/hgext/record.py +++ b/hgext/record.py @@ -155,6 +155,8 @@ class hunk(object): def write(self, fp): delta = len(self.before) + len(self.after) + if self.after and self.after[-1] == '\\ No newline at end of file\n': + delta -= 1 fromlen = delta + self.removed tolen = delta + self.added fp.write('@@ -%d,%d +%d,%d @@%s\n' % @@ -206,7 +208,7 @@ def parsepatch(fp): if self.context: self.before = self.context self.context = [] - self.hunk = data + self.hunk = hunk def newfile(self, hdr): self.addcontext([]) @@ -467,9 +469,16 @@ def dorecord(ui, repo, committer, *pats, # 3b. (apply) if dopatch: - ui.debug('applying patch\n') - ui.debug(fp.getvalue()) - patch.internalpatch(fp, ui, 1, repo.root) + try: + ui.debug('applying patch\n') + ui.debug(fp.getvalue()) + patch.internalpatch(fp, ui, 1, repo.root) + except patch.PatchError, err: + s = str(err) + if s: + raise util.Abort(s) + else: + raise util.Abort(_('patch failed to apply')) del fp # 4. We prepared working directory according to filtered patch.