/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/repository.py

  • Committer: Breezy landing bot
  • Author(s): Jelmer Vernooij
  • Date: 2020-07-20 02:17:05 UTC
  • mfrom: (7518.1.2 merge-3.1)
  • Revision ID: breezy.the.bot@gmail.com-20200720021705-5f11tmo1hdqjxm6x
Merge lp:brz/3.1.

Merged from https://code.launchpad.net/~jelmer/brz/merge-3.1/+merge/387628

Show diffs side-by-side

added added

removed removed

Lines of Context:
39
39
    )
40
40
from .mapping import (
41
41
    default_mapping,
 
42
    encode_git_path,
42
43
    foreign_vcs_git,
43
44
    mapping_registry,
44
45
    )
301
302
                try:
302
303
                    obj = tree_lookup_path(
303
304
                        self._git.object_store.__getitem__, root_tree,
304
 
                        path.encode('utf-8'))
 
305
                        encode_git_path(path))
305
306
                    if isinstance(obj, tuple):
306
307
                        (mode, item_id) = obj
307
308
                        obj = self._git.object_store[item_id]
544
545
            raise ValueError('invalid revision id %s' % revision_id)
545
546
        return GitRevisionTree(self, revision_id)
546
547
 
547
 
    def get_deltas_for_revisions(self, revisions, specific_fileids=None):
548
 
        """Produce a generator of revision deltas.
549
 
 
550
 
        Note that the input is a sequence of REVISIONS, not revision_ids.
551
 
        Trees will be held in memory until the generator exits.
552
 
        Each delta is relative to the revision's lefthand predecessor.
553
 
 
554
 
        :param specific_fileids: if not None, the result is filtered
555
 
          so that only those file-ids, their parents and their
556
 
          children are included.
557
 
        """
558
 
        # Get the revision-ids of interest
559
 
        required_trees = set()
560
 
        for revision in revisions:
561
 
            required_trees.add(revision.revision_id)
562
 
            required_trees.update(revision.parent_ids[:1])
563
 
 
564
 
        trees = dict((t.get_revision_id(), t) for
565
 
                     t in self.revision_trees(required_trees))
566
 
 
567
 
        # Calculate the deltas
568
 
        for revision in revisions:
569
 
            if not revision.parent_ids:
570
 
                old_tree = self.revision_tree(_mod_revision.NULL_REVISION)
571
 
            else:
572
 
                old_tree = trees[revision.parent_ids[0]]
573
 
            new_tree = trees[revision.revision_id]
574
 
            if specific_fileids is not None:
575
 
                specific_files = [new_tree.id2path(
576
 
                    fid) for fid in specific_fileids]
577
 
            else:
578
 
                specific_files = None
579
 
            yield new_tree.changes_from(
580
 
                old_tree, specific_files=specific_files)
581
 
 
582
548
    def set_make_working_trees(self, trees):
583
549
        raise errors.UnsupportedOperation(self.set_make_working_trees, self)
584
550