[MERGE] make topo_sorting of get_ancestry optional
aaron.bentley at utoronto.ca
Thu Jun 21 04:53:58 BST 2007
-----BEGIN PGP SIGNED MESSAGE-----
Topological sorts are relatively expensive operations. They are showing
up in my profiling of "bzr bundle", for example.
Repository.get_ancestry automatically does a topological sort, but most
of its callers do not need topologically-sorted results. In fact, quite
a few turn it into a set (which is necessarily unsorted).
This patch will...
1. add a topo_sort flag to Repository.get_ancestry (and its callees).
2. convert all relevant callers to pass topo_sort=False.
3. introduce Graph.iter_topo_sorted, which operates only on the
4. fix a bug in tsort.TopoSorter that caused GraphCycleError to be
raised if one of the parents of the specified revisions was not in
the list of specified revisions.
5. update bundle.serializer._write_bundle to use Graph.iter_topo_sorted
so that it can use topo_sort=False
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
-----END PGP SIGNATURE-----
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 113796 bytes
Desc: not available
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20070620/4de4a221/attachment-0001.bin
More information about the bazaar