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