Rev 4639: Fix bzrlib.missing to not directly load the graph, etc. in http://bazaar.launchpad.net/~jameinel/bzr/1.19-known-graph-sorted
John Arbash Meinel
john at arbash-meinel.com
Mon Aug 17 19:52:13 BST 2009
At http://bazaar.launchpad.net/~jameinel/bzr/1.19-known-graph-sorted
------------------------------------------------------------
revno: 4639
revision-id: john at arbash-meinel.com-20090817185201-5xmgwhtn9nv2p4h8
parent: john at arbash-meinel.com-20090817183614-ss5shqo00p002imm
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: 1.19-known-graph-sorted
timestamp: Mon 2009-08-17 13:52:01 -0500
message:
Fix bzrlib.missing to not directly load the graph, etc.
Look at bzrlib.annotate, but it needs to inject a node into the graph, which
isn't supported yet.
-------------- next part --------------
=== modified file 'bzrlib/annotate.py'
--- a/bzrlib/annotate.py 2009-07-08 17:09:03 +0000
+++ b/bzrlib/annotate.py 2009-08-17 18:52:01 +0000
@@ -188,6 +188,10 @@
# or something.
last_revision = current_rev.revision_id
# XXX: Partially Cloned from branch, uses the old_get_graph, eep.
+ # XXX: The main difficulty is that we need to inject a single new node
+ # (current_rev) into the graph before it gets numbered, etc.
+ # Once KnownGraph gets an 'add_node()' function, we can use
+ # VF.get_known_graph_ancestry().
graph = repository.get_graph()
revision_graph = dict(((key, value) for key, value in
graph.iter_ancestry(current_rev.parent_ids) if value is not None))
=== modified file 'bzrlib/missing.py'
--- a/bzrlib/missing.py 2009-03-23 14:59:43 +0000
+++ b/bzrlib/missing.py 2009-08-17 18:52:01 +0000
@@ -138,31 +138,13 @@
if not ancestry: #Empty ancestry, no need to do any work
return []
- mainline_revs, rev_nos, start_rev_id, end_rev_id = log._get_mainline_revs(
- branch, None, tip_revno)
- if not mainline_revs:
- return []
-
- # This asks for all mainline revisions, which is size-of-history and
- # should be addressed (but currently the only way to get correct
- # revnos).
-
- # mainline_revisions always includes an extra revision at the
- # beginning, so don't request it.
- parent_map = dict(((key, value) for key, value
- in graph.iter_ancestry(mainline_revs[1:])
- if value is not None))
- # filter out ghosts; merge_sort errors on ghosts.
- # XXX: is this needed here ? -- vila080910
- rev_graph = _mod_repository._strip_NULL_ghosts(parent_map)
- # XXX: what if rev_graph is empty now ? -- vila080910
- merge_sorted_revisions = tsort.merge_sort(rev_graph, tip,
- mainline_revs,
- generate_revno=True)
+ merge_sorted_revisions = branch.iter_merge_sorted_revisions()
# Now that we got the correct revnos, keep only the relevant
# revisions.
merge_sorted_revisions = [
- (s, revid, n, d, e) for s, revid, n, d, e in merge_sorted_revisions
+ # log.reverse_by_depth expects seq_num to be present, but it is
+ # stripped by iter_merge_sorted_revisions()
+ (0, revid, n, d, e) for revid, n, d, e in merge_sorted_revisions
if revid in ancestry]
if not backward:
merge_sorted_revisions = log.reverse_by_depth(merge_sorted_revisions)
More information about the bazaar-commits
mailing list