changeset 9861:0262bb59016f

support encoding fallback in branchmap to maintain compatibility with 1.3.x
author Henrik Stuart <henrik.stuart@edlund.dk>
date Mon, 16 Nov 2009 13:35:36 +0100
parents 9c43089b372a
children e8e9f523ffe8 81f1462ef2c7
files mercurial/httprepo.py mercurial/sshrepo.py
diffstat 2 files changed, 10 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/httprepo.py	Mon Nov 16 14:09:31 2009 +0100
+++ b/mercurial/httprepo.py	Mon Nov 16 13:35:36 2009 +0100
@@ -11,6 +11,7 @@
 import repo, changegroup, statichttprepo, error, url, util
 import os, urllib, urllib2, urlparse, zlib, httplib
 import errno, socket
+import encoding
 
 def zgenerator(f):
     zd = zlib.decompressobj()
@@ -153,6 +154,10 @@
             for branchpart in d.splitlines():
                 branchheads = branchpart.split(' ')
                 branchname = urllib.unquote(branchheads[0])
+                try:
+                    branchname.decode('utf-8', 'strict')
+                except UnicodeDecodeError:
+                    branchname = encoding.tolocal(branchname)
                 branchheads = [bin(x) for x in branchheads[1:]]
                 branchmap[branchname] = branchheads
             return branchmap
--- a/mercurial/sshrepo.py	Mon Nov 16 14:09:31 2009 +0100
+++ b/mercurial/sshrepo.py	Mon Nov 16 13:35:36 2009 +0100
@@ -7,7 +7,7 @@
 
 from node import bin, hex
 from i18n import _
-import repo, util, error
+import repo, util, error, encoding
 import re, urllib
 
 class remotelock(object):
@@ -173,6 +173,10 @@
             for branchpart in d.splitlines():
                 branchheads = branchpart.split(' ')
                 branchname = urllib.unquote(branchheads[0])
+                try:
+                    branchname.decode('utf-8', 'strict')
+                except UnicodeDecodeError:
+                    branchname = encoding.tolocal(branchname)
                 branchheads = [bin(x) for x in branchheads[1:]]
                 branchmap[branchname] = branchheads
             return branchmap