Wie geht man mit der Synchronisation verschiedener Geräte um, die sich beide von der Serverversion unterscheiden.
In dem Fall braucht man den User als Schiedsrichter.
Mir ging es bei meiner Idee (inspiriert vom
Git object modell) darum, dass es niemals erforderlich ist, eine Datei herunterzuladen nur um festzustellen, ob es Abweichungen zur lokalen Version gibt.
Und auf das Datum kann man sich ja auch nicht verlassen.
Stattdessen reicht es aus die nur wenige kB grosse ".syncstate" Datei zu vergleichen.
Dadurch, dass die Historie der Hashwerte aufgehoben wird kann ein Client leicht erkennen, dass er noch eine alte Version hat.
Man könnte auch das Umbennen von Dateien erkennen und so vermeiden dass vielleicht viele MB heruntergeladen werden müssen, obwohl die Datei lokal unter einem anderen Namen schon vorhanden ist.
Aber es ist halt nur so eine Idee die noch reifen muss...