我一直在使用unison作为我选择的文件同步器,生活一直很棒。
本质上,我可以随时修改任何一方的任何文件,而不必担心谁是主从,等等。它是双向的。
然而,当无法到达每个根的主要合作伙伴时,四个根会相互故障,我开始挑战这个工具的极限。出现冲突,导致所涉及文件的自动同步停止。我的业务逻辑的各个方面分布在不同的主机上,它们在运行时有时会修改相同的文件。
配置文件中的合并选项开始发挥作用。它允许您为不同的文件类型指定不同的合并命令。
例如,仅对于日志文件,我喜欢将它们的行插入:
merge = Name *.log -> diff3 -m CURRENT1 CURRENTARCH CURRENT2 > NEW || echo "differences detected"
问题:仅对于 *.last 文件,什么合并命令总是有利于旧副本?
对于 *.rb *.sh 和其他源文件,我不希望合并,但总是选择较新的版本以防发生冲突。不过,我可以默认使用prefer = newer
global选项来做到这一点。
对于 *.png 文件,我通常更喜欢保持较小(优化)的大小。