Mercurial > hg
changeset 119:c7a66f9752a4
Add code to retrieve or construct a revlog delta
author | mpm@selenic.com |
---|---|
date | Fri, 20 May 2005 17:40:24 -0800 |
parents | a0e57df96e96 |
children | bae6f0328f63 |
files | mercurial/revlog.py |
diffstat | 1 files changed, 12 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/revlog.py Fri May 20 17:38:01 2005 -0800 +++ b/mercurial/revlog.py Fri May 20 17:40:24 2005 -0800 @@ -188,6 +188,18 @@ def patches(self, t, pl): return mdiff.patches(t, pl) + def delta(self, node): + r = self.rev(node) + b = self.base(r) + if r == b: + return self.diff(self.revision(self.node(r - 1)), + self.revision(node)) + else: + f = self.opener(self.datafile) + f.seek(self.start(r)) + data = f.read(self.length(r)) + return decompress(data) + def revision(self, node): if node == nullid: return "" if self.cache and self.cache[0] == node: return self.cache[2]