Someone should confirm the output stream sequence. My cursory double check seems to say that the data stream sent by the server should be reasonable.
Specifically, get_data_stream seems to be layered on top of Repository.item_keys_introduced_by() whose default implementation seems to stream the inventories after the file texts.
However, we still have some real-world cases where it seems to have streamed in the wrong order.
My quick test of creating a --knit with bzr.dev, and then committing a couple and manually stepping the 'get_data_stream()' iterator also says that we copy file texts first.
So we still need to figure out how ^C during a push could copy the inventories, but not the file texts.
Someone should confirm the output stream sequence. My cursory double check seems to say that the data stream sent by the server should be reasonable.
Specifically, get_data_stream seems to be layered on top of Repository. item_keys_ introduced_ by() whose default implementation seems to stream the inventories after the file texts.
However, we still have some real-world cases where it seems to have streamed in the wrong order.
My quick test of creating a --knit with bzr.dev, and then committing a couple and manually stepping the 'get_data_stream()' iterator also says that we copy file texts first.
So we still need to figure out how ^C during a push could copy the inventories, but not the file texts.