~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/merge.py

  • Committer: Robert Collins
  • Date: 2005-10-30 00:00:09 UTC
  • mfrom: (1185.16.134)
  • Revision ID: robertc@robertcollins.net-20051030000009-9db99a338a0dfdac
MergeĀ fromĀ Martin.

Show diffs side-by-side

added added

removed removed

Lines of Context:
275
275
def merge(other_revision, base_revision,
276
276
          check_clean=True, ignore_zero=False,
277
277
          this_dir=None, backup_files=False, merge_type=ApplyMerge3,
278
 
          file_list=None, show_base=False):
 
278
          file_list=None, show_base=False, reprocess=False):
279
279
    """Merge changes into a tree.
280
280
 
281
281
    base_revision
308
308
    if show_base and not merge_type is ApplyMerge3:
309
309
        raise BzrCommandError("Show-base is not supported for this merge"
310
310
                              " type. %s" % merge_type)
 
311
    if reprocess and not merge_type is ApplyMerge3:
 
312
        raise BzrCommandError("Reprocess is not supported for this merge"
 
313
                              " type. %s" % merge_type)
 
314
    if reprocess and show_base:
 
315
        raise BzrCommandError("Cannot reprocess and show base.")
311
316
    merger = Merger(this_branch)
312
317
    merger.check_basis(check_clean)
313
318
    merger.set_other(other_revision)
316
321
    merger.merge_type = merge_type 
317
322
    merger.set_interesting_files(file_list)
318
323
    merger.show_base = show_base 
 
324
    merger.reprocess = reprocess
319
325
    merger.conflict_handler = MergeConflictHandler(merger.this_tree, 
320
326
                                                   merger.base_tree, 
321
327
                                                   merger.other_tree,
326
332
 
327
333
def merge_inner(this_branch, other_tree, base_tree, ignore_zero=False,
328
334
                backup_files=False, merge_type=ApplyMerge3, 
329
 
                interesting_ids=None, show_base=False):
 
335
                interesting_ids=None, show_base=False, reprocess=False):
330
336
    """Primary interface for merging. 
331
337
 
332
338
        typical use is probably 
338
344
    merger.merge_type = ApplyMerge3
339
345
    merger.interesting_ids = interesting_ids
340
346
    merger.show_base = show_base 
 
347
    merger.reprocess = reprocess
341
348
    merger.conflict_handler = MergeConflictHandler(merger.this_tree, base_tree, 
342
349
                                                   other_tree,
343
350
                                                   ignore_zero=ignore_zero)
358
365
        self.backup_files = False
359
366
        self.interesting_ids = None
360
367
        self.show_base = False
 
368
        self.reprocess = False
361
369
        self.conflict_handler = MergeConflictHandler(self.this_tree, base_tree, 
362
370
                                                     other_tree)
363
371
 
398
406
            weave = self.this_revision_tree.get_weave(file_id)
399
407
            contents_change = self.merge_type(weave, t_revid, o_revid)
400
408
        else:
401
 
            if self.show_base is True:
 
409
            if self.show_base is True or self.reprocess is True:
402
410
                contents_change = self.merge_type(file_id, base, other, 
403
 
                                                  show_base=True)
 
411
                                                  show_base=self.show_base, 
 
412
                                                  reprocess=self.reprocess)
404
413
            else:
405
414
                contents_change = self.merge_type(file_id, base, other)
406
415
        if self.backup_files: