Closed by commit rHG0415a566742a: manifest: fix another pure-parsing 20-byte assumption (authored by durin42). This revision was automatically updated to reflect the committed changes.
REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D8370?vs=21052&id=21083 CHANGES SINCE LAST ACTION https://phab.mercurial-scm.org/D8370/new/ REVISION DETAIL https://phab.mercurial-scm.org/D8370 AFFECTED FILES mercurial/manifest.py CHANGE DETAILS diff --git a/mercurial/manifest.py b/mercurial/manifest.py --- a/mercurial/manifest.py +++ b/mercurial/manifest.py @@ -377,8 +377,13 @@ t = self.extradata[-cur - 1] l.append(self._pack(t)) self.positions[i] = offset - if len(t[1]) > 20: - self.extrainfo[i] = ord(t[1][21]) + # Hashes are either 20 bytes (old sha1s) or 32 + # bytes (new non-sha1). + hlen = 20 + if len(t[1]) > 25: + hlen = 32 + if len(t[1]) > hlen: + self.extrainfo[i] = ord(t[1][hlen + 1]) offset += len(l[-1]) i += 1 self.data = b''.join(l) To: durin42, #hg-reviewers, Alphare, pulkit Cc: Alphare, mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel