git-remote-testpy: hash bytes explicitly

Under Python 3 'hasher.update(...)' must take a byte string and not a
unicode string.  Explicitly encode the argument to this method to hex
bytes so that we don't need to worry about failures to encode that might
occur if we chose a textual encoding.

This changes the directory used by git-remote-testpy for its git mirror
of the remote repository, but this tool should not have any serious
users as it is used primarily to test the Python remote helper
framework.

The use of encode() moves the required Python version forward to 2.0.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
John Keeping 2013-01-20 13:15:36 +00:00 committed by Junio C Hamano
parent cadbf5c7ed
commit 0846b0c905

View file

@ -31,9 +31,9 @@
from git_remote_helpers.git.importer import GitImporter
from git_remote_helpers.git.non_local import NonLocalGit
if sys.hexversion < 0x01050200:
# os.makedirs() is the limiter
sys.stderr.write("git-remote-testgit: requires Python 1.5.2 or later.\n")
if sys.hexversion < 0x02000000:
# string.encode() is the limiter
sys.stderr.write("git-remote-testgit: requires Python 2.0 or later.\n")
sys.exit(1)
def get_repo(alias, url):
@ -45,7 +45,7 @@ def get_repo(alias, url):
repo.get_head()
hasher = _digest()
hasher.update(repo.path)
hasher.update(repo.path.encode('hex'))
repo.hash = hasher.hexdigest()
repo.get_base_path = lambda base: os.path.join(