~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/commands.py

  • Committer: Martin Pool
  • Date: 2005-08-25 00:47:04 UTC
  • Revision ID: mbp@sourcefrog.net-20050825004704-e3c75123f29539bf
- expose 'find-merge-base' as a new expert command,
  to help in debugging merges

  move UnrelatedBranches exception into bzrlib.errors

Show diffs side-by-side

added added

removed removed

Lines of Context:
1476
1476
 
1477
1477
 
1478
1478
 
 
1479
class cmd_find_merge_base(Command):
 
1480
    """Find and print a base revision for merging two branches.
 
1481
 
 
1482
    TODO: Options to specify revisions on either side, as if
 
1483
          merging only part of the history.
 
1484
    """
 
1485
    takes_args = ['branch', 'other']
 
1486
    hidden = True
 
1487
    
 
1488
    def run(self, branch, other):
 
1489
        branch1 = find_branch(branch)
 
1490
        branch2 = find_branch(other)
 
1491
 
 
1492
        base_revno, base_revid = branch1.common_ancestor(branch2)
 
1493
 
 
1494
        if base_revno is None:
 
1495
            raise bzrlib.errors.UnrelatedBranches()
 
1496
 
 
1497
        print 'merge base is revision %s' % base_revid
 
1498
        print ' r%-6d in %s' % (base_revno, branch)
 
1499
 
 
1500
        other_revno = branch2.revision_id_to_revno(base_revid)
 
1501
        
 
1502
        print ' r%-6d in %s' % (other_revno, other)
 
1503
 
 
1504
 
 
1505
 
1479
1506
class cmd_merge(Command):
1480
1507
    """Perform a three-way merge.
1481
1508