4

Unison 手册的一部分force

您还可以指定-force newer(或-force older)强制 Unison 选择具有较晚(较早)modtime 的文件。在这种情况下,-times还必须启用首选项。

我的理解是,当发生冲突时,会采用更新的文件版本。但是还有其他选项prefer,也可以设置newer为。不幸的是,描述prefer很少,所以我不知道是什么prefer=newer意思,有什么区别?

4

1 回答 1

3

喜欢较新

你的理解还不够完整。当检测到文件的版本不同,并且其中一个文件只是另一个文件的更新版本时, Unison 将复制较新的文件。

现在,如果您在两台机器上更新单个文件的每个版本而不在编辑之间进行同步会怎样?这两个文件都不是另一个文件的更新版本,因此 Unison 不清楚要保留哪个文件。据说这些文件有冲突,Unison 会提示您选择一个文件(或者如果您auto true设置了 Unison 将跳过该文件)。该prefer newer选项将告诉 Unison 在这种情况下不要发生冲突,并假设具有最新时间戳的文件是您想要同步的文件。如果您希望 Unison 在后台运行,这一点很重要,带有 和 之类的auto true选项repeat watch。这是手册中的相关解释prefer,请注意,只有路径或文件冲突时才重要:

喜欢xxx

包含首选项-prefer root会导致 Unison 始终以有利于 的方式解决冲突root,而不是向用户寻求指导。(of 的语法与首选项的语法root相同root,加上特殊值 new 和 old。)

此首选项被首选项覆盖preferpartial

仅当您确定自己知道自己在做什么时,才应使用此首选项!


强制更新

对于force newer,看起来您在引用的行之前错过了手册中的行:

包含首选项force root会导致 Unison 解决所有差异(甚至是非冲突更改)以支持 root。这有效地将 Unison 从同步器更改为镜像实用程序。

因此,虽然该prefer选项仅在发生冲突时同步文件(特别是如果文件已更改),但无论是否有更改,force都会同步所有内容。

于 2017-10-05T04:18:58.483 回答