Yeah and the index id doesn’t change, it’s just a random identifier, so that’s fine.
Just to clarify for myself, there is a separate local_version for each computer’s index, correct? So computer A’s local_version of 4 is different then computer B’s local_version of 4 (as they have different index ids)? So that when the Sync happens, it is noticed that they are different, and the change is handled correctly?
Or to put it another way, if A and B both increment local_version, this is noticed as two different modification events?
It’s not clear from the proposal this is the case, which is why I ask. If this is clarified elsewhere, may I suggest linking to it, to ensure future readers are aware?
Basically yes, I think, if I understand your question. I think the required reading to understand what’s going on here is first of all the protocol spec, Block Exchange Protocol v1 — Syncthing v1 documentation, and possibly some of the code itself. The proposal isn’t necessarily targeted to be understandable by someone not quite familiar with the protocol and internals, but we have a few such people around now.