~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/commands.py

  • Committer: Robert Collins
  • Date: 2005-08-25 03:23:17 UTC
  • mto: (974.1.50) (1185.1.10) (1092.3.1)
  • mto: This revision was merged to the branch mainline in revision 1139.
  • Revision ID: robertc@robertcollins.net-20050825032317-fe3c65b2a432adc8
merge from mpool up to 1109

Show diffs side-by-side

added added

removed removed

Lines of Context:
1475
1475
 
1476
1476
 
1477
1477
 
 
1478
class cmd_find_merge_base(Command):
 
1479
    """Find and print a base revision for merging two branches.
 
1480
 
 
1481
    TODO: Options to specify revisions on either side, as if
 
1482
          merging only part of the history.
 
1483
    """
 
1484
    takes_args = ['branch', 'other']
 
1485
    hidden = True
 
1486
    
 
1487
    def run(self, branch, other):
 
1488
        branch1 = find_branch(branch)
 
1489
        branch2 = find_branch(other)
 
1490
 
 
1491
        base_revno, base_revid = branch1.common_ancestor(branch2)
 
1492
 
 
1493
        if base_revno is None:
 
1494
            raise bzrlib.errors.UnrelatedBranches()
 
1495
 
 
1496
        print 'merge base is revision %s' % base_revid
 
1497
        print ' r%-6d in %s' % (base_revno, branch)
 
1498
 
 
1499
        other_revno = branch2.revision_id_to_revno(base_revid)
 
1500
        
 
1501
        print ' r%-6d in %s' % (other_revno, other)
 
1502
 
 
1503
 
 
1504
 
1478
1505
class cmd_merge(Command):
1479
1506
    """Perform a three-way merge.
1480
1507
    
1564
1591
    """Show help on a command or other topic.
1565
1592
 
1566
1593
    For a list of all available commands, say 'bzr help commands'."""
 
1594
    takes_options = ['long']
1567
1595
    takes_args = ['topic?']
1568
1596
    aliases = ['?']
1569
1597
    
1570
 
    def run(self, topic=None):
 
1598
    def run(self, topic=None, long=False):
1571
1599
        import help
 
1600
        if topic is None and long:
 
1601
            topic = "commands"
1572
1602
        help.help(topic)
1573
1603
 
1574
1604
 
1931
1961
        return cmd_class(cmdopts, cmdargs).status 
1932
1962
 
1933
1963
 
1934
 
def _report_exception(summary, quiet=False):
1935
 
    import traceback
1936
 
    
1937
 
    log_error('bzr: ' + summary)
1938
 
 
1939
 
    if not quiet:
1940
 
        sys.stderr.write('\n')
1941
 
        tb = sys.exc_info()[2]
1942
 
        exinfo = traceback.extract_tb(tb)
1943
 
        if exinfo:
1944
 
            sys.stderr.write('  at %s:%d in %s()\n' % exinfo[-1][:3])
1945
 
        sys.stderr.write('  see ~/.bzr.log for debug information\n')
1946
 
 
1947
 
 
1948
 
 
1949
1964
def main(argv):
1950
1965
    import bzrlib.ui
1951
1966
    
1980
1995
            bzrlib.trace.note('broken pipe')
1981
1996
            return 2
1982
1997
        else:
1983
 
            bzrlib.trace.log_exception('terminated by exception')
 
1998
            bzrlib.trace.log_exception()
1984
1999
            return 2
1985
2000
 
1986
2001