John Keeping <john@xxxxxxxxxxxxx> writes: > Under Python 3 'hasher.update(...)' must take a byte string and not a > unicode string. Explicitly encode the argument to this method as UTF-8 > so that this code works under Python 3. > > This moves the required Python version forward to 2.0. > > Signed-off-by: John Keeping <john@xxxxxxxxxxxxx> > --- Hmph. So what happens when the path is _not_ encoded in UTF-8? Is the repo.hash (and local.hash that gets a copy of it) something that needs to stay the same across multiple invocations of this remote helper, and between the currently shipped Git and the version of Git after applying this patch? If that is not the case, and if this is used only to get a randomly-looking 40-byte hexadecimal string, then a lossy attempt to .encode('utf-8') and falling back to replace or ignore bytes in the original that couldn't be interpreted as part of a UTF-8 string would be OK, but doesn't .encode('utf-8') throw an exception if not told to 'ignore' or something? > git-remote-testpy.py | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/git-remote-testpy.py b/git-remote-testpy.py > index d94a66a..f8dc196 100644 > --- a/git-remote-testpy.py > +++ b/git-remote-testpy.py > @@ -31,9 +31,9 @@ from git_remote_helpers.git.exporter import GitExporter > 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('utf-8')) > repo.hash = hasher.hexdigest() > > repo.get_base_path = lambda base: os.path.join( -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html