diff -r c51494c53841 -r 7e7d56fe4833 mercurial/httprepo.py --- a/mercurial/httprepo.py Tue Nov 17 22:16:41 2009 +0100 +++ b/mercurial/httprepo.py Wed Nov 18 15:20:08 2009 +0100 @@ -154,10 +154,13 @@ for branchpart in d.splitlines(): branchheads = branchpart.split(' ') branchname = urllib.unquote(branchheads[0]) + # Earlier servers (1.3.x) send branch names in (their) local + # charset. The best we can do is assume it's identical to our + # own local charset, in case it's not utf-8. try: - branchname.decode('utf-8', 'strict') + branchname.decode('utf-8') except UnicodeDecodeError: - branchname = encoding.tolocal(branchname) + branchname = encoding.fromlocal(branchname) branchheads = [bin(x) for x in branchheads[1:]] branchmap[branchname] = branchheads return branchmap