Синхронизация
Синхронизация держит папку Pragma — базы и проекты — одинаковой на нескольких компьютерах через папку на сервере.
Параметры ▸ Параметры синхронизации… настраивает: сервер FTP (также с TLS), WebDAV или репозиторий Git. Проверить соединение проверяет.
Файл ▸ Синхронизировать (Ctrl+Y, также первая кнопка панели) делает всё по порядку: читает источники, сохраняет проект и обменивается файлами с сервером. Синхронизировать перед закрытием делает это при каждом выходе.
Синхронизация сама ничего не удаляет: отсутствующая на одной стороне база копируется туда, изменённая на двух компьютерах сливается партия за партией. Чтобы избавиться от партии, используйте корзину — другие компьютеры последуют.
Каждый компьютер помнит, что синхронизировал последний раз, в скрытом файле папки Pragma .pragma-chess.mine, который на сервер не уходит. Так он отличает файл, удалённый вручную — скажем, в файловом менеджере — от ещё не полученного: при следующей синхронизации спрашивает Удалить везде, Восстановить или Спросить позже (спросит снова при следующем запуске Pragma Chess). Удалённый везде файл убирается с сервера, и каждый другой компьютер при следующей синхронизации переносит свою копию в корзину. Файл, изменённый тем временем на другом компьютере, просто возвращается.
Файлы, принадлежащие только серверу — README и LICENSE репозитория Git, скажем — перечислены в .pragmaignore в корне папки на сервере, по одному в строке, как в .gitignore (*.tmp, Notes/, # комментарий). Они остаются на сервере: на ваши компьютеры не копируются, копия, полученная раньше, уходит при следующей синхронизации (изменённую вами оставляют, но больше не синхронизируют), и ничего с таким именем с ваших компьютеров не отправляется.
Большие файлы не синхронизируются: файл больше 20 МБ — скажем, база из миллионов партий — остаётся на компьютере, где он есть, и никогда не отправляется на сервер и не приходит оттуда. До 100 МБ окно сообщает, какие файлы остались в стороне, один раз за запуск Pragma Chess; более крупные пропускаются молча.
Управление файлами… в параметрах синхронизации перечисляет файлы в папке на сервере. Выберите и нажмите Удалить…, чтобы подчистить: после подтверждения они удаляются со всех синхронизированных устройств, включая этот компьютер (в корзину), и перестают путешествовать между компьютерами.
С репозиторием Git каждая синхронизация, меняющая файлы, делает один commit с их именами («Update Databases/Games.pdb; add Projects/Study.pch»): синхронизация, которая только получает или ничего нового не находит, историю не трогает.
Параметры ▸ Подключить мобильное приложение… показывает код для сканирования Pragma Chess на телефоне, который затем держит копию ваших баз.
Когда вы удаляете базу на телефоне, компьютер при следующей синхронизации с телефоном спрашивает, удалить ли её и здесь или оставить: Оставить оставляет на компьютере, Спросить позже спросит снова при следующем запуске Pragma Chess, а Удалить везде… сначала предупреждает, что база будет удалена со всех синхронизированных устройств — в корзину на этом компьютере, из папки синхронизации на сервере, и другие компьютеры, синхронизирующиеся с ней, удалят свою копию. В любом случае телефон её снова не получит.