D7209: fsmonitor: make _hashignore compatible with Python 3
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Sat Nov 2 22:04:26 UTC 2019
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
The Hasher wants a bytes but we were feeding it a str. Let's
use our repr() implementation to return bytes.
In addition, the hexdigest() would return a str, which would be
compared against a bytes and would always fail. Normalize to
bytes so the compare works.
REPOSITORY
rHG Mercurial
BRANCH
stable
REVISION DETAIL
https://phab.mercurial-scm.org/D7209
AFFECTED FILES
hgext/fsmonitor/__init__.py
CHANGE DETAILS
diff --git a/hgext/fsmonitor/__init__.py b/hgext/fsmonitor/__init__.py
--- a/hgext/fsmonitor/__init__.py
+++ b/hgext/fsmonitor/__init__.py
@@ -236,8 +236,8 @@
"""
sha1 = hashlib.sha1()
- sha1.update(repr(ignore))
- return sha1.hexdigest()
+ sha1.update(pycompat.byterepr(ignore))
+ return pycompat.sysbytes(sha1.hexdigest())
_watchmanencoding = pywatchman.encoding.get_local_encoding()
To: indygreg, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list