Merge lp:~jelmer/brz-git/extras-badfileenc into lp:brz-git

Proposed by Jelmer Vernooij
Status: Merged
Approved by: Jelmer Vernooij
Approved revision: 1838
Merge reported by: The Breezy Bot
Merged at revision: not available
Proposed branch: lp:~jelmer/brz-git/extras-badfileenc
Merge into: lp:brz-git
Diff against target: 36 lines (+12/-3)
1 file modified
workingtree.py (+12/-3)
To merge this branch: bzr merge lp:~jelmer/brz-git/extras-badfileenc
Reviewer Review Type Date Requested Status
Jelmer Vernooij Approve
Review via email: mp+341188@code.launchpad.net

Commit message

Fix BadFilenameEncoding raising during WorkingTree.extras.

Description of the change

Fix BadFilenameEncoding raising during WorkingTree.extras.

To post a comment you must log in.
Revision history for this message
Jelmer Vernooij (jelmer) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'workingtree.py'
--- workingtree.py 2018-03-07 02:41:52 +0000
+++ workingtree.py 2018-03-09 02:28:42 +0000
@@ -614,7 +614,7 @@
614 def _iter_files_recursive(self, from_dir=None, include_dirs=False):614 def _iter_files_recursive(self, from_dir=None, include_dirs=False):
615 if from_dir is None:615 if from_dir is None:
616 from_dir = ""616 from_dir = ""
617 for (dirpath, dirnames, filenames) in os.walk(self.abspath(from_dir)):617 for (dirpath, dirnames, filenames) in os.walk(self.abspath(from_dir).encode(osutils._fs_enc)):
618 dir_relpath = dirpath[len(self.basedir):].strip("/")618 dir_relpath = dirpath[len(self.basedir):].strip("/")
619 if self.controldir.is_control_filename(dir_relpath):619 if self.controldir.is_control_filename(dir_relpath):
620 continue620 continue
@@ -624,12 +624,21 @@
624 continue624 continue
625 relpath = os.path.join(dir_relpath, name)625 relpath = os.path.join(dir_relpath, name)
626 if include_dirs:626 if include_dirs:
627 yield relpath627 try:
628 yield relpath.decode(osutils._fs_enc)
629 except UnicodeDecodeError as e:
630 raise errors.BadFilenameEncoding(
631 relpath, osutils._fs_enc)
628 if not self._has_dir(relpath):632 if not self._has_dir(relpath):
629 dirnames.remove(name)633 dirnames.remove(name)
630 for name in filenames:634 for name in filenames:
631 if not self.mapping.is_special_file(name):635 if not self.mapping.is_special_file(name):
632 yield os.path.join(dir_relpath, name)636 yp = os.path.join(dir_relpath, name)
637 try:
638 yield yp.decode(osutils._fs_enc)
639 except UnicodeDecodeError:
640 raise errors.BadFilenameEncoding(
641 yp, osutils._fs_enc)
633642
634 def extras(self):643 def extras(self):
635 """Yield all unversioned files in this WorkingTree.644 """Yield all unversioned files in this WorkingTree.

Subscribers

People subscribed via source and target branches

to all changes: