diff --git a/hggit/git_handler.py b/hggit/git_handler.py index 121401d74d0d2f73885d6cd9abd1ef28d696932c_aGdnaXQvZ2l0X2hhbmRsZXIucHk=..2c32471b56089094af808b259258e8ce63e3b19b_aGdnaXQvZ2l0X2hhbmRsZXIucHk= 100644 --- a/hggit/git_handler.py +++ b/hggit/git_handler.py @@ -1727,7 +1727,13 @@ ua = b'git/20x6 (hg-git ; uses dulwich and hg ; like git-core)' config = dul_config.ConfigDict() config.set(b'http', b'useragent', ua) - return client.HttpGitClient(uri, config=config), uri + if pycompat.ispy3: + # urllib3.util.url._encode_invalid_chars() converts the path + # back to bytes using the utf-8 codec + str_uri = uri.decode('utf-8') + else: + str_uri = uri + return client.HttpGitClient(str_uri, config=config), uri # if its not git or git+ssh, try a local url.. return client.SubprocessGitClient(), uri