/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/git/tree.py

  • Committer: Breezy landing bot
  • Author(s): Jelmer Vernooij
  • Date: 2020-01-12 14:46:56 UTC
  • mfrom: (7404.5.6 follow-tree-references-branch)
  • Revision ID: breezy.the.bot@gmail.com-20200112144656-vx5jxg1votqi5217
Support checking out nested trees in "bzr branch", including for git repositories.

Merged from https://code.launchpad.net/~jelmer/brz/follow-tree-references-branch/+merge/374397

Show diffs side-by-side

added added

removed removed

Lines of Context:
211
211
        self.reference_revision = reference_revision
212
212
 
213
213
    @property
 
214
    def executable(self):
 
215
        return False
 
216
 
 
217
    @property
214
218
    def kind(self):
215
219
        return 'tree-reference'
216
220
 
301
305
                relpath.decode('utf-8'))
302
306
        else:
303
307
            nested_repo_transport = self._repository.controldir.control_transport.clone(
304
 
                posixpath.join('modules', info[1]))
 
308
                posixpath.join('modules', info[1].decode('utf-8')))
305
309
        nested_controldir = _mod_controldir.ControlDir.open_from_transport(
306
310
            nested_repo_transport)
307
311
        return nested_controldir.find_repository()
614
618
        """See RevisionTree.get_symlink_target."""
615
619
        (store, mode, hexsha) = self._lookup_path(path)
616
620
        if S_ISGITLINK(mode):
617
 
            nested_repo = self._get_submodule_repository(path.encode('utf-8'))
618
 
            return nested_repo.lookup_foreign_revision_id(hexsha)
 
621
            try:
 
622
                nested_repo = self._get_submodule_repository(path.encode('utf-8'))
 
623
            except errors.NotBranchError:
 
624
                return self.mapping.revision_id_foreign_to_bzr(hexsha)
 
625
            else:
 
626
                return nested_repo.lookup_foreign_revision_id(hexsha)
619
627
        else:
620
628
            return None
621
629