This isn't a Knit1 versus Knit3 issue. I think it is actually something to do with when the inventory format might have changed.
Doing a bit of manual bisecting the last failing revision seems to be revno 1677.
Specifically, I can do:
bzr branch -r1678 bzr.dev test-1678
but doing
bzr branch -r1677 bzr.dev test-1677
Fails with the same assertion error.
As near as I can tell, that is the first revision that started setting the overall Inventory.revision_id attribute. Specifically doing a diff:
So I think what is happening is that the deserializer is getting the root revision_id from the wrong location. (It is assuming that the revision_id was serialized and using that for inv.root.revision_id, rather than using the one passed in.)
This isn't a Knit1 versus Knit3 issue. I think it is actually something to do with when the inventory format might have changed.
Doing a bit of manual bisecting the last failing revision seems to be revno 1677.
Specifically, I can do:
bzr branch -r1678 bzr.dev test-1678
but doing
bzr branch -r1677 bzr.dev test-1677
Fails with the same assertion error. revision_ id attribute. Specifically doing a diff:
As near as I can tell, that is the first revision that started setting the overall Inventory.
@@ -1,1 +1,1 @@
-<inventory format="5">
+<inventory format="5" <email address hidden>">
...
So I think what is happening is that the deserializer is getting the root revision_id from the wrong location. (It is assuming that the revision_id was serialized and using that for inv.root. revision_ id, rather than using the one passed in.)
I'll look into it briefly.