/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz

« back to all changes in this revision

Viewing changes to branchview/linegraph.py

  • Committer: Jelmer Vernooij
  • Date: 2008-06-29 19:18:34 UTC
  • mto: This revision was merged to the branch mainline in revision 515.
  • Revision ID: jelmer@samba.org-20080629191834-ha2ecpv5szt96nge
Make sure signed testament matches repository data.

Show diffs side-by-side

added added

removed removed

Lines of Context:
9
9
__copyright__ = "Copyright © 2005 Canonical Ltd."
10
10
__author__    = "Scott James Remnant <scott@ubuntu.com>"
11
11
 
 
12
from bzrlib.revision import NULL_REVISION
12
13
from bzrlib.tsort import merge_sort
13
14
 
14
15
def linegraph(repository, start_revs, maxnum, broken_line_length = None,
44
45
    
45
46
    graph = repository.get_graph()
46
47
    graph_parents = {}
 
48
    ghosts = set()
47
49
    graph_children = {}
48
50
    for (revid, parent_revids) in graph.iter_ancestry(start_revs):
49
 
        graph_parents[revid] = parent_revids
50
 
        graph_children[revid] = []
51
 
 
 
51
        if parent_revids is None:
 
52
            ghosts.add(revid)
 
53
            continue
 
54
        if parent_revids == (NULL_REVISION,):
 
55
            graph_parents[revid] = ()
 
56
        else:
 
57
            graph_parents[revid] = parent_revids
 
58
        for parent in parent_revids:
 
59
            graph_children.setdefault(parent, []).append(revid)
 
60
        graph_children.setdefault(revid, [])
 
61
    for ghost in ghosts:
 
62
        for ghost_child in graph_children[ghost]:
 
63
            graph_parents[ghost_child] = [p for p in graph_parents[ghost_child]
 
64
                                          if p not in ghosts]
52
65
    graph_parents["top:"] = start_revs
53
66
 
54
67
    if len(graph_parents)>0:
90
103
        revid_index[revid] = rev_index
91
104
        
92
105
        parents = graph_parents[revid]
93
 
        for parent_revid in parents:
94
 
            graph_children[parent_revid].append(revid)
95
 
        
96
106
        linegraph.append([revid,
97
107
                          None,
98
108
                          [],