mercurial/revlog.py
changeset 24123 eb2d41c6ec37
parent 24122 da14b8eba806
child 24255 4bfe9f2d9761
--- a/mercurial/revlog.py	Fri Feb 06 01:38:16 2015 +0000
+++ b/mercurial/revlog.py	Wed Jan 21 17:11:37 2015 -0500
@@ -1261,8 +1261,14 @@
                 delta = cachedelta[1]
             else:
                 t = buildtext()
-                ptext = self.revision(self.node(rev))
-                delta = mdiff.textdiff(ptext, t)
+                if self.iscensored(rev):
+                    # deltas based on a censored revision must replace the
+                    # full content in one patch, so delta works everywhere
+                    header = mdiff.replacediffheader(self.rawsize(rev), len(t))
+                    delta = header + t
+                else:
+                    ptext = self.revision(self.node(rev))
+                    delta = mdiff.textdiff(ptext, t)
             data = self.compress(delta)
             l = len(data[1]) + len(data[0])
             if basecache[0] == rev: