/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 bzrlib/merge.py

  • Committer: Aaron Bentley
  • Date: 2007-07-06 00:58:58 UTC
  • mto: (2590.2.12 changes-merge)
  • mto: This revision was merged to the branch mainline in revision 2603.
  • Revision ID: aaron.bentley@utoronto.ca-20070706005858-covn9uur45ir2mz9
Allow selected files to be specified instead of selected ids

Show diffs side-by-side

added added

removed removed

Lines of Context:
114
114
        self.ignore_zero = False
115
115
        self.backup_files = False
116
116
        self.interesting_ids = None
 
117
        self.interesting_files = None
117
118
        self.show_base = False
118
119
        self.reprocess = False
119
120
        self._pb = pb
169
170
 
170
171
    def set_interesting_files(self, file_list):
171
172
        try:
172
 
            self._set_interesting_files(file_list)
 
173
            self.interesting_files = file_list
173
174
        except NotVersionedError, e:
174
175
            raise BzrCommandError("%s is not a source file in any"
175
176
                                      " tree." % e.path)
294
295
        kwargs = {'working_tree':self.this_tree, 'this_tree': self.this_tree,
295
296
                  'other_tree': self.other_tree,
296
297
                  'interesting_ids': self.interesting_ids,
 
298
                  'interesting_files': self.interesting_files,
297
299
                  'pp': self.pp}
298
300
        if self.merge_type.requires_base:
299
301
            kwargs['base_tree'] = self.base_tree
426
428
 
427
429
    def __init__(self, working_tree, this_tree, base_tree, other_tree, 
428
430
                 interesting_ids=None, reprocess=False, show_base=False,
429
 
                 pb=DummyProgress(), pp=None, change_reporter=None):
 
431
                 pb=DummyProgress(), pp=None, change_reporter=None,
 
432
                 interesting_files=None):
430
433
        """Initialize the merger object and perform the merge."""
431
434
        object.__init__(self)
 
435
        if interesting_files is not None:
 
436
            assert interesting_ids is None
432
437
        self.interesting_ids = interesting_ids
 
438
        self.interesting_files = interesting_files
433
439
        self.this_tree = working_tree
434
440
        self.this_tree.lock_tree_write()
435
441
        self.base_tree = base_tree
493
499
 
494
500
    def _entries3(self):
495
501
        result = []
 
502
        iterator = self.other_tree._iter_changes(self.base_tree,
 
503
                include_unchanged=True, specific_files=self.interesting_files,
 
504
                extra_trees=[self.this_tree])
496
505
        for (file_id, paths, changed, versioned, parents, names, kind,
497
 
             executable) in self.other_tree._iter_changes(self.base_tree,
498
 
                include_unchanged=True):
 
506
             executable) in iterator:
499
507
            if (self.interesting_ids is not None and
500
508
                file_id not in self.interesting_ids):
501
509
                continue
951
959
 
952
960
    def __init__(self, working_tree, this_tree, base_tree, other_tree, 
953
961
                 interesting_ids=None, pb=DummyProgress(), pp=None,
954
 
                 reprocess=False, change_reporter=None):
 
962
                 reprocess=False, change_reporter=None,
 
963
                 interesting_files=None):
955
964
        self.this_revision_tree = self._get_revision_tree(this_tree)
956
965
        self.other_revision_tree = self._get_revision_tree(other_tree)
957
966
        super(WeaveMerger, self).__init__(working_tree, this_tree, 
1085
1094
    if interesting_files:
1086
1095
        assert not interesting_ids, ('Only supply interesting_ids'
1087
1096
                                     ' or interesting_files')
1088
 
        merger._set_interesting_files(interesting_files)
 
1097
        merger.interesting_files = interesting_files
1089
1098
    merger.show_base = show_base
1090
1099
    merger.reprocess = reprocess
1091
1100
    merger.other_rev_id = other_rev_id