/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to gitlib/git_repository.py

Fix Repository.get_revision_graph()

Show diffs side-by-side

added added

removed removed

Lines of Context:
50
50
        return True
51
51
 
52
52
    def get_revision_graph(self, revision_id=None):
53
 
        if revision_id is None:
54
 
            revisions = None
55
 
        else:
56
 
            revisions = [revision_id]
57
 
        return self.get_revision_graph_with_ghosts(revisions).get_ancestors()
58
 
 
59
 
    def get_revision_graph_with_ghosts(self, revision_ids=None):
60
53
        result = {}
61
 
        for node, parents in self._git.ancestry(None).iteritems():
 
54
        if revision_id is not None:
 
55
            param = [ids.convert_revision_id_bzr_to_git(revision_id)]
 
56
        else:
 
57
            param = None
 
58
        for node, parents in self._git.ancestry(param).iteritems():
62
59
            bzr_node = ids.convert_revision_id_git_to_bzr(node)
63
60
            bzr_parents = [ids.convert_revision_id_git_to_bzr(n)
64
61
                           for n in parents]
65
62
            result[bzr_node] = bzr_parents
66
63
        return result
67
64
 
 
65
    def get_revision_graph_with_ghosts(self, revision_ids=None):
 
66
        graph = deprecated_graph.Graph()
 
67
        if revision_ids is not None:
 
68
            revision_ids = [ids.convert_revision_id_bzr_to_git(r)
 
69
                            for r in revision_ids]
 
70
        for node, parents in self._git.ancestry(revision_ids).iteritems():
 
71
            bzr_node = ids.convert_revision_id_git_to_bzr(node)
 
72
            bzr_parents = [ids.convert_revision_id_git_to_bzr(n)
 
73
                           for n in parents]
 
74
 
 
75
            graph.add_node(bzr_node, bzr_parents)
 
76
        return graph
 
77
 
68
78
    def get_revision(self, revision_id):
69
79
        if revision_id in self._revision_cache:
70
80
            return self._revision_cache[revision_id]