/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/missing.py

  • Committer: John Arbash Meinel
  • Date: 2009-06-17 19:08:25 UTC
  • mto: This revision was merged to the branch mainline in revision 4460.
  • Revision ID: john@arbash-meinel.com-20090617190825-ktfk82li57rf2im6
It seems that fetch() no longer returns the number of revisions fetched.
It still does for *some* InterRepository fetch paths, but the generic one does not.
It is also not easy to get it to, since the Source and Sink are the ones
that would know how many keys were transmitted, and they are potentially 'remote'
objects.

This was also only tested to occur as a by-product in a random 'test_commit' test.
I assume if we really wanted the assurance, we would have a per_repo or interrepo
test for it.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
from bzrlib import (
20
20
    log,
 
21
    repository as _mod_repository,
 
22
    tsort,
21
23
    )
22
24
import bzrlib.revision as _mod_revision
23
25
 
136
138
    if not ancestry: #Empty ancestry, no need to do any work
137
139
        return []
138
140
 
139
 
    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:
 
144
        return []
 
145
 
 
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
 
148
    # revnos).
 
149
 
 
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,
 
160
                                              mainline_revs,
 
161
                                              generate_revno=True)
140
162
    # Now that we got the correct revnos, keep only the relevant
141
163
    # revisions.
142
164
    merge_sorted_revisions = [
143
 
        # log.reverse_by_depth expects seq_num to be present, but it is
144
 
        # stripped by iter_merge_sorted_revisions()
145
 
        (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
146
166
        if revid in ancestry]
147
167
    if not backward:
148
168
        merge_sorted_revisions = log.reverse_by_depth(merge_sorted_revisions)