During a pull operation where the server does not provide sidedata, the client
that requires it should generate them on-the-fly. In the generic case, we need
to wait for the changelog + manifests + filelogs to be added, since we don't
know what the sidedata computers might need: this means rewriting the index
entries from within the pull transaction (and no further back) right after we've
added them.
The Python implementation does not guard against the accidental replacement of
an entry that is not within the transaction, but the C implementation does.