641
641
def compare(self, want_unchanged=False, specific_files=None,
642
642
extra_trees=None, require_versioned=False, include_root=False,
643
643
want_unversioned=False):
644
changes, target_missing = self._iter_git_changes(
645
want_unchanged=want_unchanged,
646
require_versioned=require_versioned,
647
specific_files=specific_files,
648
extra_trees=extra_trees)
649
source_fileid_map = self.source._fileid_map
650
target_fileid_map = self.target._fileid_map
651
return tree_delta_from_git_changes(changes, self.target.mapping,
652
(source_fileid_map, target_fileid_map),
653
specific_files=specific_files, include_root=include_root)
644
with self.lock_read():
645
changes, target_missing = self._iter_git_changes(
646
want_unchanged=want_unchanged,
647
require_versioned=require_versioned,
648
specific_files=specific_files,
649
extra_trees=extra_trees,
650
want_unversioned=want_unversioned)
651
source_fileid_map = self.source._fileid_map
652
target_fileid_map = self.target._fileid_map
653
return tree_delta_from_git_changes(changes, self.target.mapping,
654
(source_fileid_map, target_fileid_map),
655
specific_files=specific_files, include_root=include_root)
655
657
def iter_changes(self, include_unchanged=False, specific_files=None,
656
658
pb=None, extra_trees=[], require_versioned=True,
657
659
want_unversioned=False):
658
changes, target_missing = self._iter_git_changes(
659
want_unchanged=include_unchanged,
660
require_versioned=require_versioned,
661
specific_files=specific_files,
662
extra_trees=extra_trees)
663
return changes_from_git_changes(changes, self.target.mapping,
664
specific_files=specific_files, include_unchanged=include_unchanged,
665
target_missing=target_missing)
660
with self.lock_read():
661
changes, target_missing = self._iter_git_changes(
662
want_unchanged=include_unchanged,
663
require_versioned=require_versioned,
664
specific_files=specific_files,
665
extra_trees=extra_trees,
666
want_unversioned=want_unversioned)
667
return changes_from_git_changes(
668
changes, self.target.mapping,
669
specific_files=specific_files,
670
include_unchanged=include_unchanged,
671
target_missing=target_missing)
667
673
def _iter_git_changes(self, want_unchanged=False, specific_files=None,
668
require_versioned=False, extra_trees=None):
674
require_versioned=False, extra_trees=None,
675
want_unversioned=False):
669
676
raise NotImplementedError(self._iter_git_changes)