В приведенном вами примере именно поэтому синхронизация считается сложной проблемой.
Компьютер A удалил файл, который еще есть на компьютере B. Теперь: как узнать, был ли файл добавлен на B и должен быть скопирован на A, или удален на A, и должен быть удален на B? Вы действительно не Многие системы синхронизации имеют возможность конфликтующих изменений, которые должны быть разрешены человеком.
Многие инструменты уже созданы для синхронизации, в том числе:
- системы контроля версий, такие как CVS, Subversion, Mercurial, git, Perforce и т. Д.
- автономные программы однонаправленной синхронизации. Они не могут обрабатывать изменения ни с одной стороны, но они могут сделать каталог назначения похожим на каталог источника. Это лучше, чем полная копия, потому что это быстрее, но на самом деле это то же самое. Примеры включают rsync, ROBOCOPY и XCOPY / MIR в Windows.
- Простые в использовании инструменты интернет-синхронизации, которые синхронизируют папки на нескольких машинах. Примеры включают Windows Live Folder и Dropbox. Эти приложения часто разрешают конфликты путем создания дополнительных копий обеих версий в подкаталогах, чтобы вы могли разобраться с ними позже. Они действительно предполагают, что будет очень очень мало конфликтов.
- встроенная синхронизация в сложных приложениях, например, синхронизация электронной почты / контактов / календаря в Microsoft Exchange, Lotus Notes и т. Д.