Rev 1162: Support unicode names properly in file id cache. in file:///data/jelmer/bzr-svn/0.4/

Jelmer Vernooij jelmer at samba.org
Wed May 14 19:58:46 BST 2008


At file:///data/jelmer/bzr-svn/0.4/

------------------------------------------------------------
revno: 1162
revision-id: jelmer at samba.org-20080514185825-6euz7qzz36twwofj
parent: jelmer at samba.org-20080512042953-753vagi97dkc3j1p
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Wed 2008-05-14 20:58:25 +0200
message:
  Support unicode names properly in file id cache.
modified:
  fileids.py                     fileids.py-20060714013623-u5iiyqqnko11grcf-1
=== modified file 'fileids.py'
--- a/fileids.py	2008-05-11 21:55:31 +0000
+++ b/fileids.py	2008-05-14 18:58:25 +0000
@@ -196,16 +196,21 @@
 
     def save(self, revid, parent_revids, _map):
         mutter('saving file id map for %r' % revid)
-                
+
+        for path, (id, created_revid)  in _map.items():
+            assert isinstance(path, unicode)
+            assert isinstance(id, str)
+            assert isinstance(created_revid, str)
+
         self.idmap_knit.add_lines_with_ghosts(revid, parent_revids, 
-                ["%s\t%s\t%s\n" % (urllib.quote(filename), urllib.quote(_map[filename][0]), 
+                ["%s\t%s\t%s\n" % (urllib.quote(filename.encode("utf-8")), urllib.quote(_map[filename][0]), 
                                         urllib.quote(_map[filename][1])) for filename in sorted(_map.keys())])
 
     def load(self, revid):
         map = {}
         for line in self.idmap_knit.get_lines(revid):
             (filename, id, create_revid) = line.rstrip("\n").split("\t", 3)
-            map[urllib.unquote(filename)] = (urllib.unquote(id), urllib.unquote(create_revid))
+            map[urllib.unquote(filename).decode("utf-8")] = (urllib.unquote(id), urllib.unquote(create_revid))
             assert isinstance(map[urllib.unquote(filename)][0], str)
 
         return map




More information about the bazaar-commits mailing list