~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/log.py

Merge bzr.dev into cleanup

Show diffs side-by-side

added added

removed removed

Lines of Context:
553
553
                    # may not raise _StartNotLinearAncestor for a revision that
554
554
                    # is an ancestor but not a *linear* one. But since we have
555
555
                    # loaded the graph to do the check (or calculate a dotted
556
 
                    # revno), we may as well accept to show the log... 
557
 
                    # -- vila 100201
 
556
                    # revno), we may as well accept to show the log...  We need
 
557
                    # the check only if start_rev_id is not None as all
 
558
                    # revisions have _mod_revision.NULL_REVISION as an ancestor
 
559
                    # -- vila 20100319
558
560
                    graph = branch.repository.get_graph()
559
 
                    if not graph.is_ancestor(start_rev_id, end_rev_id):
 
561
                    if (start_rev_id is not None
 
562
                        and not graph.is_ancestor(start_rev_id, end_rev_id)):
560
563
                        raise _StartNotLinearAncestor()
 
564
                    # Since we collected the revisions so far, we need to
 
565
                    # adjust end_rev_id.
561
566
                    end_rev_id = rev_id
562
567
                    break
563
568
                else:
576
581
            raise errors.BzrCommandError('Start revision not found in'
577
582
                ' history of end revision.')
578
583
 
 
584
    # We exit the loop above because we encounter a revision with merges, from
 
585
    # this revision, we need to switch to _graph_view_revisions.
 
586
 
579
587
    # A log including nested merges is required. If the direction is reverse,
580
588
    # we rebase the initial merge depths so that the development line is
581
589
    # shown naturally, i.e. just like it is for linear logging. We can easily
583
591
    # indented at the end seems slightly nicer in that case.
584
592
    view_revisions = chain(iter(initial_revisions),
585
593
        _graph_view_revisions(branch, start_rev_id, end_rev_id,
586
 
        rebase_initial_depths=direction == 'reverse'))
 
594
                              rebase_initial_depths=(direction == 'reverse')))
587
595
    if direction == 'reverse':
588
596
        return view_revisions
589
597
    elif direction == 'forward':
655
663
 
656
664
 
657
665
def _graph_view_revisions(branch, start_rev_id, end_rev_id,
658
 
    rebase_initial_depths=True):
 
666
                          rebase_initial_depths=True):
659
667
    """Calculate revisions to view including merges, newest to oldest.
660
668
 
661
669
    :param branch: the branch
1424
1432
        """
1425
1433
        # Revision comes directly from a foreign repository
1426
1434
        if isinstance(rev, foreign.ForeignRevision):
1427
 
            return self._format_properties(rev.mapping.vcs.show_foreign_revid(rev.foreign_revid))
 
1435
            return self._format_properties(
 
1436
                rev.mapping.vcs.show_foreign_revid(rev.foreign_revid))
1428
1437
 
1429
1438
        # Imported foreign revision revision ids always contain :
1430
1439
        if not ":" in rev.revision_id:
2006
2015
        bug_rows = [line.split(' ', 1) for line in bug_lines]
2007
2016
        fixed_bug_urls = [row[0] for row in bug_rows if
2008
2017
                          len(row) > 1 and row[1] == 'fixed']
2009
 
        
 
2018
 
2010
2019
        if fixed_bug_urls:
2011
2020
            return {'fixes bug(s)': ' '.join(fixed_bug_urls)}
2012
2021
    return {}