From: Junio C Hamano Date: Sun, 27 Jan 2013 05:30:00 GMT Subject: Re: [PATCH v3 6/8] git-remote-testpy: hash bytes explicitly Message-ID: <7vy5ffxkfb.fsf@alter.siamese.dyndns.org> In-Reply-To: <5104B0B5.1030501@alum.mit.edu> Michael Haggerty writes: > This will still fail under Python 2.x if repo.path is a byte string that > contains non-ASCII characters. And it will fail under Python 3.1 and > later if repo.path contains characters using the surrogateescape > encoding option [1],... > Here you don't really need byte-for-byte correctness; it would be enough > to get *some* byte string that is unique for a given input ... Yeek. As we do not care about the actual value at all, how about doing something like this instead? git-remote-testgit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/git-remote-testgit.py b/git-remote-testgit.py index 5f3ebd2..705750d 100644 --- a/git-remote-testgit.py +++ b/git-remote-testgit.py @@ -40,7 +40,7 @@ def get_repo(alias, url): repo.get_head() hasher = _digest() - hasher.update(repo.path) + hasher.update(".".join([str(ord(c)) for c in repo.path])) repo.hash = hasher.hexdigest() repo.get_base_path = lambda base: os.path.join(