Rev 2393: Test GraphDeltas on multiple-step internal-subgraphs. in file:///home/robertc/source/baz/netsim/
Robert Collins
robertc at robertcollins.net
Sun Apr 1 08:31:21 BST 2007
At file:///home/robertc/source/baz/netsim/
------------------------------------------------------------
revno: 2393
revision-id: robertc at robertcollins.net-20070401073118-vixkw83zk2plkkwz
parent: robertc at robertcollins.net-20070401071322-2wi0ecpdtf0jrjm0
committer: Robert Collins <robertc at robertcollins.net>
branch nick: netsim
timestamp: Sun 2007-04-01 17:31:18 +1000
message:
Test GraphDeltas on multiple-step internal-subgraphs.
modified:
bzrlib/graph.py graph.py-20050905070950-b47dce53236c5e48
bzrlib/tests/test_graph.py testgraph.py-20050905070950-42e6c958106610fd
=== modified file 'bzrlib/graph.py'
--- a/bzrlib/graph.py 2007-04-01 07:13:22 +0000
+++ b/bzrlib/graph.py 2007-04-01 07:31:18 +0000
@@ -174,6 +174,10 @@
return set([node for node, descendants in
self._graph_descendants.items() if not descendants])
+ def __repr__(self):
+ return "Graph ancestors=%s, descendants=%r, ghosts=%r" % (
+ self._graph_ancestors, self._graph_descendants, self.ghosts)
+
class GraphDelta(object):
"""A delta between two DAG's.
@@ -211,6 +215,7 @@
node = pending.pop()
if node not in cut_from:
result.add_node(node, ancestors[node])
+ pending.update(ancestors[node])
return result
@classmethod
=== modified file 'bzrlib/tests/test_graph.py'
--- a/bzrlib/tests/test_graph.py 2007-04-01 07:13:22 +0000
+++ b/bzrlib/tests/test_graph.py 2007-04-01 07:31:18 +0000
@@ -151,3 +151,20 @@
graph_to.add_node('A', [])
result = GraphDelta()
self.check_delta(result, graph_from, graph_to)
+
+ def testMiddleSegment(self):
+ # grabbing a delta from A->B->C->D->E to B->C->D:
+ graph_from = Graph()
+ graph_from.add_node('A', ['B'])
+ graph_from.add_node('B', ['C'])
+ graph_from.add_node('C', ['D'])
+ graph_from.add_node('D', ['E'])
+ graph_from.add_node('E', [])
+ graph_to = Graph()
+ graph_to.add_node('B', ['C'])
+ graph_to.add_node('C', ['D'])
+ graph_to.add_node('D', ['E'])
+ result = GraphDelta()
+ result.heads = set(['B'])
+ result.cut_from = set(['E'])
+ self.check_delta(result, graph_from, graph_to)
More information about the bazaar-commits
mailing list