Если вам это сойдет с рук, самый простой способ сделать синхронизацию (безусловно) - это иметь три копии ваших данных локально: копия, которую вы в последний раз загрузили («старая»), копия производится локальными изменениями («моё») и копией , теперь загружается с сервера («их»).
Затем сортируйте все записи во всех трех файлах и просматривайте их одну за другой:
- если старый == мой, используйте их
- иначе, если старый == их, используйте мой
- иначе у вас конфликт; сделать что-нибудь с этим (например, всегда используйте мой, иначе "последний писатель выигрывает")
Обратите внимание, что "мои", "их" или "старые" могут не существовать. Правила выше все еще применяются в этом случае; если выбранный вами результат - «не существует», то вы захотите удалить запись в выходном файле.
Наконец, загрузите полученный файл обратно на сервер, чтобы он стал «их» базой данных для следующего парня. Затем скопируйте новый файл в ваши локальные "старые" и "мои" базы данных.
(Есть более эффективные алгоритмы, чем описанные выше ..., но нет и более простых :) А дисковое пространство в настоящее время довольно дешево, особенно если вы сжимаете файлы.)