diff --git a/mercurial/revlogutils/rewrite.py b/mercurial/revlogutils/rewrite.py --- a/mercurial/revlogutils/rewrite.py +++ b/mercurial/revlogutils/rewrite.py @@ -589,7 +589,9 @@ except error.CensoredNodeError: # We don't care about censored nodes as they never carry metadata return False - has_meta = raw_text.startswith(b'\x01\n') + + # raw text can be a `memoryview`, which doesn't implement `startswith` + has_meta = len(raw_text) >= 2 and bytes(raw_text[:2]) == b'\x01\n' if metadata_cache is not None: metadata_cache[filerev] = has_meta if has_meta: