~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/revision.py

fixme note for bzr status

Show diffs side-by-side

added added

removed removed

Lines of Context:
235
235
    root, ancestors, descendants = revision_graph(revision_a, revision_source)
236
236
    root_b, ancestors_b, descendants_b = revision_graph(revision_b, 
237
237
                                                        revision_source)
238
 
    if root != root_b:
239
 
        raise bzrlib.errors.NoCommonRoot(revision_a, revision_b)
 
238
    assert root == root_b
240
239
    common = set()
241
240
    for node, node_anc in ancestors_b.iteritems():
242
241
        if node in ancestors:
251
250
    return root, ancestors, descendants, common
252
251
 
253
252
def common_ancestor(revision_a, revision_b, revision_source):
254
 
    try:
255
 
        root, ancestors, descendants, common = \
256
 
            combined_graph(revision_a, revision_b, revision_source)
257
 
    except bzrlib.errors.NoCommonRoot:
258
 
        raise bzrlib.errors.NoCommonAncestor(revision_a, revision_b)
259
 
        
 
253
    root, ancestors, descendants, common = \
 
254
        combined_graph(revision_a, revision_b, revision_source)
260
255
    nodes = farthest_nodes(descendants, ancestors, root)
261
256
    for node in nodes:
262
257
        if node in common:
263
258
            return node
264
 
    raise bzrlib.errors.NoCommonAncestor(revision_a, revision_b)
265
259
 
266
260
class MultipleRevisionSources(object):
267
261
    """Proxy that looks in multiple branches for revisions."""