与inoify watch一致:它是如何处理对相同文件的频繁更改的?

假设我有一个统一的相对较大的文件同步。 而文件更改一段时间比unison更频繁地同步它。 它压缩后续更改或尝试排队和发送每一个版本? 是否可以为单个文件或全局configuration后续同步之间的最小时间间隔,即:将所有更改排队一段时间,并触发一个操作,压缩所有后续的跨度更改?

据我所知,Unison并不排队给定文件的多个版本进行同步。 相反,它运行的是这样的:

  1. Unison运行,它遍历所有本地和远程文件,并build立一个已经改变的列表。

  2. 然后,Unison运行该列表并同时对每个文件进行同步。

所以没有多个版本的单个文件正在进行排队。 在Unison识别出上次同步后文件已经发生变化后,它会在步骤2中读取文件时同步在磁盘上发生的任何版本。如果文件在添加到步骤1中的列表和同步之间更改了十次在步骤2中,Unison不知道,只会看到最后一个版本。 它确实没有必要考虑中间版本。

现在,如果文件经常更新,那么 Unison正在同步它时,它有可能会更新,这将返回一个错误。 就像是

Failed to fingerprint file "foo.bar": the file keeps on changing 

或者有时像File changed during sync ...File changed during sync ... ,它只会跳过该文件。