Merge 灵活的合并命令,用于unison选择较新或较旧的文件?

Merge 灵活的合并命令,用于unison选择较新或较旧的文件?,merge,synchronization,backup,bidirectional,Merge,Synchronization,Backup,Bidirectional,我一直在使用我的文件同步器的选择和生活一直是伟大的 基本上,我可以在任何时候修改任何一方的任何文件,而不必担心谁是主文件和从文件等等。这是双向的 然而,当四个根无法联系到各自的主要伙伴时,四个根会互相失败,我开始挑战这个工具的极限。冲突会导致相关文件的自动同步停止。我的业务逻辑的各个方面分布在不同的主机上,这些主机在运行时有时会修改相同的文件 配置文件中的设置将起作用。它允许您为不同的文件类型指定不同的合并命令 例如,仅对于日志文件,我喜欢使用以下内容插入它们的行: merge = Name *

我一直在使用我的文件同步器的选择和生活一直是伟大的

基本上,我可以在任何时候修改任何一方的任何文件,而不必担心谁是主文件和从文件等等。这是双向的

然而,当四个根无法联系到各自的主要伙伴时,四个根会互相失败,我开始挑战这个工具的极限。冲突会导致相关文件的自动同步停止。我的业务逻辑的各个方面分布在不同的主机上,这些主机在运行时有时会修改相同的文件

配置文件中的设置将起作用。它允许您为不同的文件类型指定不同的合并命令

例如,仅对于日志文件,我喜欢使用以下内容插入它们的行:

merge = Name *.log -> diff3 -m CURRENT1 CURRENTARCH CURRENT2  > NEW   || echo "differences detected"
问题:仅对于*.last文件,哪个合并命令总是支持较旧的副本

对于*.rb*.sh和其他源文件,我不希望合并,但总是选择较新的版本以防冲突。不过,默认情况下,我可以使用
preference=newer
global选项来实现这一点


对于*.png文件,我通常倾向于保持较小的(优化的)大小。

对于.rb和.sh文件,您可以使用
preferpartial=Name*.rb->newer
,对于.ssh文件也是如此。对于.last文件,您可以改用
older

关于.png文件,您可以编写自己的merge命令来检查两个文件的大小。然后,我将设置
merge=Name*.png->mycmp CURRENT1 CURRENT2 NEW
,并让
mycmp
命令获取三个文件路径,比较前两个的大小,然后将其复制到第三个路径