Mercurial > public > mercurial-scm > hg
comparison mercurial/filelog.py @ 23858:22a979d1ae56
filelog: use censored revlog flag bit to quickly check if a node is censored
author | Mike Edgar <adgar@google.com> |
---|---|
date | Mon, 12 Jan 2015 15:29:36 -0500 |
parents | 58ec36686f0e |
children | b95a5bb58653 |
comparison
equal
deleted
inserted
replaced
23857:8a3c132f93d2 | 23858:22a979d1ae56 |
---|---|
83 samehashes = not super(filelog, self).cmp(node, t) | 83 samehashes = not super(filelog, self).cmp(node, t) |
84 if samehashes: | 84 if samehashes: |
85 return False | 85 return False |
86 | 86 |
87 # censored files compare against the empty file | 87 # censored files compare against the empty file |
88 if self._iscensored(node): | 88 if self._iscensored(self.rev(node)): |
89 return text != '' | 89 return text != '' |
90 | 90 |
91 # renaming a file produces a different hash, even if the data | 91 # renaming a file produces a different hash, even if the data |
92 # remains unchanged. Check if it's the case (slow): | 92 # remains unchanged. Check if it's the case (slow): |
93 if self.renamed(node): | 93 if self.renamed(node): |
105 raise | 105 raise |
106 | 106 |
107 def _file(self, f): | 107 def _file(self, f): |
108 return filelog(self.opener, f) | 108 return filelog(self.opener, f) |
109 | 109 |
110 def _iscensored(self, revornode): | 110 def _iscensored(self, rev): |
111 """Check if a file revision is censored.""" | 111 """Check if a file revision is censored.""" |
112 try: | 112 return self.flags(rev) & revlog.REVIDX_ISCENSORED |
113 self.revision(revornode) | |
114 return False | |
115 except error.CensoredNodeError: | |
116 return True |