138
138
if not ancestry: #Empty ancestry, no need to do any work
141
merge_sorted_revisions = branch.iter_merge_sorted_revisions()
141
mainline_revs, rev_nos, start_rev_id, end_rev_id = log._get_mainline_revs(
142
branch, None, tip_revno)
143
if not mainline_revs:
146
# This asks for all mainline revisions, which is size-of-history and
147
# should be addressed (but currently the only way to get correct
150
# mainline_revisions always includes an extra revision at the
151
# beginning, so don't request it.
152
parent_map = dict(((key, value) for key, value
153
in graph.iter_ancestry(mainline_revs[1:])
154
if value is not None))
155
# filter out ghosts; merge_sort errors on ghosts.
156
# XXX: is this needed here ? -- vila080910
157
rev_graph = _mod_repository._strip_NULL_ghosts(parent_map)
158
# XXX: what if rev_graph is empty now ? -- vila080910
159
merge_sorted_revisions = tsort.merge_sort(rev_graph, tip,
142
162
# Now that we got the correct revnos, keep only the relevant
144
164
merge_sorted_revisions = [
145
# log.reverse_by_depth expects seq_num to be present, but it is
146
# stripped by iter_merge_sorted_revisions()
147
(0, revid, n, d, e) for revid, n, d, e in merge_sorted_revisions
165
(s, revid, n, d, e) for s, revid, n, d, e in merge_sorted_revisions
148
166
if revid in ancestry]
150
168
merge_sorted_revisions = log.reverse_by_depth(merge_sorted_revisions)