Code review comment for lp:~jameinel/bzr/1.18-stack-and-annotate-393366

Revision history for this message
John A Meinel (jameinel) wrote :

We have two bugs when it comes to annotate and get_record_stream.

1) If doing VF.get_record_stream(.., 'topological', True), it was not passing the 'topological' flag down to fallback repositories. This meant that 'bzr annotate' would fail pretty much any time there was a graph that crossed a stacking boundary. As it would properly return the stacked-on revisions, but the fallback repository would return the keys in 'unordered' mode.

2) It isn't quite sufficient to just return fallback revs in 'topological' and then stacked revs in 'topological', as some of the stacked revs may actually be ancestors of some of the fallback revs.

However, I didn't fix (2) because --2a works correctly today, and I think (1) is sufficient to dramatically reduce the number of times people run into this, and is much easier to fix.

This adds tests for the behavior of get_record_stream() across all repositories that support stacking, and includes an expectFailure() for formats where I know it is broken in the complex case.

« Back to merge proposal