Supposing I have one relatively large file synced by unison. И файл меняется в течение некоторого времени чаще, чем unison может его синхронизировать. Сдавливает ли он последующие изменения или пытается поставить в очередь и отправить каждую версию? Is it possible to configure a minimum time span between subsequent syncs for a single file or globally i.e.: queue all changes for some time and trigger an action squashing all subsequent changes made during the span?
Насколько мне известно, Unison не ставит в очередь для синхронизации более одной версии данного файла. Вместо этого он выполняет что-то вроде этого:
Unison запускается, и он просматривает все ваши локальные и удаленные файлы и составляет список тех, которые были изменены.
Затем Unison просматривает этот список и синхронизирует каждый файл по одному в один раз.
Таким образом, не существует очереди нескольких версий одного файла. После того, как Unison распознает, что файл был изменен с момента последней синхронизации, он просто синхронизирует ту версию, которая есть на диске при чтении файла на шаге 2. Если файл был изменен десять раз между его добавлением в список на шаге 1 и синхронизацией. на шаге 2 Unison не знает и увидит только последнюю версию. На самом деле нет необходимости рассматривать промежуточные версии.
Теперь, если файл обновляется так часто, то есть вероятность, что он обновит , пока Unison синхронизирует его, что вернет ошибку . Что-то вроде
Failed to fingerprint file "foo.bar": the file keeps on changing
или иногда что-то вроде Файл изменен во время синхронизации ...
, и он просто пропустит этот файл.