[MERGE] Allow stacking for --dev6

Andrew Bennetts andrew.bennetts at canonical.com
Tue May 12 03:17:41 BST 2009


John Arbash Meinel wrote:
[...]
> Now with the manual testing, I've run into a bug when accessing via
> bzr+ssh (it works fine with local access).
> 
> I tracked it down to code trying to get the 'ghost' revisions from the
> stacked-on location. The specific issue is with:
> 
>   revisions = search.get_keys()
> 
> This does:
> 
>   keys = [key for key, parents in graph.iter_ancestry(heads)
>           if key != NULL_REVISION]

(Specifically, PendingAncestryResult's get_keys does this.  SearchResult's
get_keys just has a pre-calculated list that it was constructed with.)

> However, that ignores the fact that 'iter_ancestry()' returns ghosts.
> You can find them by checking "parents is None".

Yes, I've been surprised by this too.  I think it would be reasonable to add
“and parents is not None” to that filter.  In fact I'm fairly sure I
considered doing that at one point, I can't remember why I didn't... perhaps
just because I didn't need to?

[...]
> I'm trying to understand what code is broken. My gut feeling is that
> "search.get_keys()" should not be returning the ghosts...

I think your gut is right.

-Andrew.




More information about the bazaar mailing list