Show More
@@ -5,7 +5,7 b'' | |||||
5 | # This software may be used and distributed according to the terms of the |
|
5 | # This software may be used and distributed according to the terms of the | |
6 | # GNU General Public License version 2 or any later version. |
|
6 | # GNU General Public License version 2 or any later version. | |
7 |
|
7 | |||
8 | import revlog |
|
8 | import error, revlog | |
9 | import re |
|
9 | import re | |
10 |
|
10 | |||
11 | _mdre = re.compile('\1\n') |
|
11 | _mdre = re.compile('\1\n') | |
@@ -27,6 +27,10 b' def packmeta(meta, text):' | |||||
27 | metatext = "".join("%s: %s\n" % (k, meta[k]) for k in keys) |
|
27 | metatext = "".join("%s: %s\n" % (k, meta[k]) for k in keys) | |
28 | return "\1\n%s\1\n%s" % (metatext, text) |
|
28 | return "\1\n%s\1\n%s" % (metatext, text) | |
29 |
|
29 | |||
|
30 | def _censoredtext(text): | |||
|
31 | m, offs = parsemeta(text) | |||
|
32 | return m and "censored" in m and not text[offs:] | |||
|
33 | ||||
30 | class filelog(revlog.revlog): |
|
34 | class filelog(revlog.revlog): | |
31 | def __init__(self, opener, path): |
|
35 | def __init__(self, opener, path): | |
32 | super(filelog, self).__init__(opener, |
|
36 | super(filelog, self).__init__(opener, | |
@@ -86,5 +90,13 b' class filelog(revlog.revlog):' | |||||
86 |
|
90 | |||
87 | return True |
|
91 | return True | |
88 |
|
92 | |||
|
93 | def checkhash(self, text, p1, p2, node, rev=None): | |||
|
94 | try: | |||
|
95 | super(filelog, self).checkhash(text, p1, p2, node, rev=rev) | |||
|
96 | except error.RevlogError: | |||
|
97 | if _censoredtext(text): | |||
|
98 | raise error.CensoredNodeError(self.indexfile, node) | |||
|
99 | raise | |||
|
100 | ||||
89 | def _file(self, f): |
|
101 | def _file(self, f): | |
90 | return filelog(self.opener, f) |
|
102 | return filelog(self.opener, f) |
General Comments 0
You need to be logged in to leave comments.
Login now