/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/plugins/git/workingtree.py

  • Committer: Breezy landing bot
  • Author(s): Jelmer Vernooij
  • Date: 2018-07-03 03:20:44 UTC
  • mfrom: (7018.3.10 git-fixes)
  • Revision ID: breezy.the.bot@gmail.com-20180703032044-t5a5w5y0tmzrbezc
Port a few more bits of the git plugin to python 3.

Merged from https://code.launchpad.net/~jelmer/brz/git-fixes2/+merge/348803

Show diffs side-by-side

added added

removed removed

Lines of Context:
514
514
        if from_dir is None:
515
515
            from_dir = u""
516
516
        for (dirpath, dirnames, filenames) in os.walk(self.abspath(from_dir).encode(osutils._fs_enc)):
517
 
            dir_relpath = dirpath[len(self.basedir):].strip("/")
518
 
            if self.controldir.is_control_filename(dir_relpath):
 
517
            dir_relpath = dirpath[len(self.basedir):].strip(b"/")
 
518
            if self.controldir.is_control_filename(dir_relpath.decode(osutils._fs_enc)):
519
519
                continue
520
520
            for name in list(dirnames):
521
 
                if self.controldir.is_control_filename(name):
 
521
                if self.controldir.is_control_filename(name.decode(osutils._fs_enc)):
522
522
                    dirnames.remove(name)
523
523
                    continue
524
524
                relpath = os.path.join(dir_relpath, name)
546
546
            index_paths = set([p.decode('utf-8') for p, i in self._recurse_index_entries()])
547
547
            all_paths = set(self._iter_files_recursive(include_dirs=True))
548
548
            for p in (all_paths - index_paths):
549
 
                if not self._has_dir(p):
 
549
                if not self._has_dir(p.encode('utf-8')):
550
550
                    yield p
551
551
 
552
552
    def _gather_kinds(self, files, kinds):
591
591
        return False
592
592
 
593
593
    def had_id(self, file_id):
594
 
        path = self._basis_fileid_map.lookup_file_id(file_id)
 
594
        path = self._basis_fileid_map.lookup_path(file_id)
595
595
        try:
596
596
            head = self.repository._git.head()
597
597
        except KeyError:
713
713
 
714
714
    def stored_kind(self, path, file_id=None):
715
715
        with self.lock_read():
716
 
            (index, subpath) = self._lookup_index(path.encode('utf-8'))
 
716
            encoded_path = path.encode('utf-8')
 
717
            (index, subpath) = self._lookup_index(encoded_path)
717
718
            try:
718
719
                return mode_kind(index[subpath].mode)
719
720
            except KeyError:
720
721
                # Maybe it's a directory?
721
 
                if self._has_dir(path):
 
722
                if self._has_dir(encoded_path):
722
723
                    return "directory"
723
724
                raise errors.NoSuchFile(path)
724
725
 
763
764
                path_iterator = sorted(self._iter_files_recursive(from_dir, include_dirs=True))
764
765
            else:
765
766
                path_iterator = sorted([os.path.join(from_dir, name.decode(osutils._fs_enc)) for name in
766
 
                    os.listdir(self.abspath(from_dir).encode(osutils._fs_enc)) if not self.controldir.is_control_filename(name)
767
 
                    and not self.mapping.is_special_file(name)])
 
767
                    os.listdir(self.abspath(from_dir).encode(osutils._fs_enc))
 
768
                    if not self.controldir.is_control_filename(name.decode(osutils._fs_enc))
 
769
                    and not self.mapping.is_special_file(name.decode(osutils._fs_enc))])
768
770
            for path in path_iterator:
769
771
                try:
770
772
                    encoded_path = path.encode("utf-8")
782
784
                    pass
783
785
                if kind in ('directory', 'tree-reference'):
784
786
                    if path != from_dir:
785
 
                        if self._has_dir(path):
 
787
                        if self._has_dir(encoded_path):
786
788
                            ie = self._get_dir_ie(path, self.path2id(path))
787
789
                            status = "V"
788
790
                            file_id = ie.file_id