Re: [PATCH 2/8] git_remote_helpers: fix input when running under Python 3
- From
Michael Haggerty <mhagger@alum.mit.edu>
- Date
- Jan 13, 2013, 03:26 UTC
- Message-ID
- <50F2296F.8030909@alum.mit.edu>
- In-Reply-To
- <a8c3aabfab64f49fa0cbb2d45bda79997a875ee8.1358018078.git.john@keeping.me.uk>
On 01/12/2013 08:23 PM, John Keeping wrote:
Show 28 quoted lines
> Although 2to3 will fix most issues in Python 2 code to make it run under
> Python 3, it does not handle the new strict separation between byte
> strings and unicode strings. There is one instance in
> git_remote_helpers where we are caught by this.
>
> Fix it by explicitly decoding the incoming byte string into a unicode
> string. In this instance, use the locale under which the application is
> running.
>
> Signed-off-by: John Keeping <john@keeping.me.uk>
> ---
> git_remote_helpers/git/importer.py | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/git_remote_helpers/git/importer.py b/git_remote_helpers/git/importer.py
> index e28cc8f..6814003 100644
> --- a/git_remote_helpers/git/importer.py
> +++ b/git_remote_helpers/git/importer.py
> @@ -20,7 +20,7 @@ class GitImporter(object):
> """Returns a dictionary with refs.
> """
> args = ["git", "--git-dir=" + gitdir, "for-each-ref", "refs/heads"]
> - lines = check_output(args).strip().split('\n')
> + lines = check_output(args).decode().strip().split('\n')
> refs = {}
> for line in lines:
> value, name = line.split(' ')
> Won't this change cause an exception if the branch names are not all valid strings in the current locale's encoding? I don't see how this assumption is justified (e.g., see git-check-ref-format(1) for the rules governing reference names).
Michael
-- Michael Haggerty mhagger@alum.mit.edu http://softwareswirl.blogspot.com/