Unison 同步错误,两边的内容都改变了

Unison Sync Error, Contents Changed on Both Sides

我不确定为什么,但在 Unison 中推送一些更改时我总是收到此错误。

Synchronization complete at 11:49:01  (0 item transferred, 2 skipped, 0 failed)
  skipped: /timetool/ana_combined (contents changed on both sides)
  skipped: /timetool/plot_delays.py (contents changed on both sides)

我见过一些使用 -prefer newer 标签的解决方案,但我不确定这是否适用于我的情况。我正在使用的服务器在日本,而我在美国工作。因此,每个文件的时间戳都不同。

这是我当前使用的 Unison 命令(为了保持匿名而做了一些小改动):

unison -auto -ignore='Name {.idea,miniconda,reborn.egg-info,*.swp,*.log,*.so,build,*.pyc,*cache*,conda_env,anaconda3,results,home}'  \
       -servercmd /home/local/bin/unison /home/my/path/ohyeah \
       ssh://server//home/my/server/path/ohyeah

除了偶尔出现的错误外,一切正常。我没有在服务器端进行任何更改,但我似乎仍然收到此错误并且我不确定如何强制执行我想要的更改。

我会回答我自己的问题,我想我找到了解决办法。

我将 -prefer root 标志添加到我的同步脚本中以使其正常工作。顾名思义,它会比较版本并根据您的偏好传播更改。

即代码:

unison -auto -ignore='Name {.idea,miniconda,reborn.egg-info,*.swp,*.log,*.so,build,*.pyc,*cache*,conda_env,anaconda3,results,home}'  \
       -servercmd /home/local/bin/unison /home/my/path/ohyeah \
       ssh://server//home/my/server/path/ohyeah -prefer /home/my/path/ohyeah

将首选项设置为我的本地计算机。 例如,如果有人编辑服务器目录中的代码,这可能会出现问题。当我同步文件时,它会覆盖此人对我机器本地所做的更改。