Mercurial > hg
changeset 32250:8a137ef6e5da
verify: always check rawsize
Previously, verify only checks "rawsize == len(rawtext)", if
"len(fl.read()) != fl.size()".
With flag processor, "len(fl.read()) != fl.size()" does not necessarily mean
"rawsize == len(rawtext)". So we may miss a useful check.
This patch removes the "if len(fl.read()) != fl.size()" condition so the
rawsize check is always performed.
With the condition removed, "fl.read(n)" looks unnecessary so a comment was
added to explain the side effect is wanted.
author | Jun Wu <quark@fb.com> |
---|---|
date | Thu, 11 May 2017 14:52:02 -0700 |
parents | 27e67cfea27f |
children | a04f5c651e52 |
files | mercurial/verify.py |
diffstat | 1 files changed, 7 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/verify.py Thu May 11 22:38:15 2017 -0700 +++ b/mercurial/verify.py Thu May 11 14:52:02 2017 -0700 @@ -427,13 +427,14 @@ # 2. hash check: depending on flag processor, we may need to # use either "text" (external), or "rawtext" (in revlog). try: - l = len(fl.read(n)) + fl.read(n) # side effect: read content and do checkhash rp = fl.renamed(n) - if l != fl.size(i): - # the "L1 == L2" check - if len(fl.revision(n, raw=True)) != fl.rawsize(i): - self.err(lr, _("unpacked size is %s, %s expected") % - (l, fl.size(i)), f) + # the "L1 == L2" check + l1 = fl.rawsize(i) + l2 = len(fl.revision(n, raw=True)) + if l1 != l2: + self.err(lr, _("unpacked size is %s, %s expected") % + (l2, l1), f) except error.CensoredNodeError: # experimental config: censor.policy if ui.config("censor", "policy", "abort") == "abort":