Rev 4768: (vila) Avoid UnicodeDecodeError in ``bzr add` on windows (Martin [gz]) in file:///home/pqm/archives/thelove/bzr/2.0/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Thu Dec 16 10:44:30 GMT 2010


At file:///home/pqm/archives/thelove/bzr/2.0/

------------------------------------------------------------
revno: 4768 [merge]
revision-id: pqm at pqm.ubuntu.com-20101216104429-qk47pgj62ekxvdhw
parent: pqm at pqm.ubuntu.com-20101202115245-mwioogw6oykdq05n
parent: gzlist at googlemail.com-20101216090141-omn7esycqi97c2fq
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: 2.0
timestamp: Thu 2010-12-16 10:44:29 +0000
message:
  (vila) Avoid UnicodeDecodeError in ``bzr add` on windows (Martin [gz])
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/mutabletree.py          mutabletree.py-20060906023413-4wlkalbdpsxi2r4y-2
  bzrlib/tests/blackbox/test_add.py test_add.py-20060518072250-857e4f86f54a30b2
=== modified file 'NEWS'
--- a/NEWS	2010-12-01 10:44:44 +0000
+++ b/NEWS	2010-12-16 09:01:41 +0000
@@ -25,6 +25,9 @@
 Bug Fixes
 *********
 
+* Avoid UnicodeDecodeError in ``bzr add`` with multiple files under a non-ascii
+  path on windows from symlink support addition. (Martin [gz], #686611)
+
 Improvements
 ************
 

=== modified file 'bzrlib/mutabletree.py'
--- a/bzrlib/mutabletree.py	2010-07-17 17:16:19 +0000
+++ b/bzrlib/mutabletree.py	2010-12-16 09:01:41 +0000
@@ -391,7 +391,9 @@
 
         # expand any symlinks in the directory part, while leaving the
         # filename alone
-        file_list = map(osutils.normalizepath, file_list)
+        # only expanding if symlinks are supported avoids windows path bugs
+        if osutils.has_symlinks():
+            file_list = map(osutils.normalizepath, file_list)
 
         # validate user file paths and convert all paths to tree
         # relative : it's cheaper to make a tree relative path an abspath

=== modified file 'bzrlib/tests/blackbox/test_add.py'
--- a/bzrlib/tests/blackbox/test_add.py	2009-08-10 08:25:05 +0000
+++ b/bzrlib/tests/blackbox/test_add.py	2010-12-09 00:50:57 +0000
@@ -24,7 +24,8 @@
     condition_isinstance,
     split_suite_by_condition,
     multiply_tests,
-    SymlinkFeature
+    SymlinkFeature,
+    UnicodeFilename,
     )
 from bzrlib.tests.blackbox import ExternalBase
 from bzrlib.tests.test_win32utils import NeedsGlobExpansionFeature
@@ -239,3 +240,12 @@
         os.symlink(osutils.abspath('target'), 'tree/link')
         out = self.run_bzr(['add', 'tree/link'])[0]
         self.assertEquals(out, 'adding link\n')
+
+    def test_add_multiple_files_in_unicode_cwd(self):
+        """Adding multiple files in a non-ascii cwd, see lp:686611"""
+        self.requireFeature(UnicodeFilename)
+        self.make_branch_and_tree(u"\xA7")
+        self.build_tree([u"\xA7/a", u"\xA7/b"])
+        out, err = self.run_bzr(["add", "a", "b"], working_dir=u"\xA7")
+        self.assertEquals(out, "adding a\n" "adding b\n")
+        self.assertEquals(err, "")




More information about the bazaar-commits mailing list