Dimonka |
---|
Например для файловой системы клиента глубоко фиолетово была ли папка удалена и создана заново или нет. Это всё равно одна и та же папка. |
Не совсем:
1. Создаем папку у клиента
2. Вносим запись в бд + пометку, что ее нужно синхронизировать.
3 Синхронизируем, ставим отметку, что папка есть на сервере.
4. Удаляем папку у клиента(синхронизации еще нет)
5. На клиенте2 обновляем папку, синхронизируем, теперь на сервере это уже другая папка.
6. клиент1 подключается к сети - папка помечена на удаление, но на сервере уже не та папка.
Dimonka |
---|
Сложнее если папка была переименована, тогда (по идее) не надо повторно загружать на сервер уже сохранённые файлы. С другой стороны если файлы небольшие - пофиг - синхронизируй всё. Если файлы большие, то можно подумать о хешировании файлов и проверки наличия их на сервере без загрузки. |
Для этого сделал "теневую папку", куда перемещаются все, что удалено и переименовано. Файлы синхронизируются заново. Пока лучше ничего не придумал.
Dimonka |
---|
В папку как вариант при первой синхронизации можно сохранять идентификатор папки и просить пользователей не баловаться с этими идентификаторами. В общем успехов в создании своего GIT-a. :-) |
там папки со множественными вложениями и подпапками, да и вообще - влезать со своими файлами в чужие файловые структуры - нехорошо.