3

我正在本地网络中的两台 Mac 上同步我的站点文件夹。readme.txt由于两台 Mac 上的插件或主题版本不同,此文件夹中的某些 Wordpress 站点包含不同的文件。它们的文件大小和时间戳不同。

default.prf有一个合并.txt文件的设置:

merge = Name *.txt -> diff3 CURRENT1 CURRENTARCHOPT CURRENT2 > NEW

这适用于大多数文本文件,但不适用于这些readme.txt文件。当我开始同步时,Unison 给我这些文件的合并错误。这是一个典型的输出:

Contacting server...
Connected [//mac1.local//Users/timm -> //mac2.local//Users/timm]
Looking for changes
  Waiting for changes from server
Reconciling changes

local          mac1.local
new file <-M-> new file   Sites/wp-sites/example.dev/wp-content/plugins/kocuj-sitemap/readme.txt

Proceed with propagating updates? [] y
Propagating updates

UNISON 2.48.4 started propagating changes at 15:21:22.86 on 16 May 2017
Merge command: diff3 '/Users/timm/Sites/wp-sites/example.dev/wp-content/plugins/kocuj-sitemap/.unison.merge1-readme.txt'  '/Users/timm/Sites/wp-sites/example.dev/wp-content/plugins/kocuj-sitemap/.unison.merge2-readme.txt' > '/Users/timm/Sites/wp-sites/example.dev/wp-content/plugins/kocuj-sitemap/.unison.mergenew1-readme.txt'
Merge result (exited (2)):
diff3: missing operand after `/Users/timm/Sites/wp-sites/example.dev/wp-content/plugins/kocuj-sitemap/.unison.merge2-readme.txt'
diff3: Try `diff3 --help' for more information.

Saving synchronizer state
Synchronization incomplete at 15:21:24  (0 items transferred, 0 skipped, 1 failed)
  failed: Sites/wp-sites/example.dev/wp-content/plugins/kocuj-sitemap/readme.txt

我意识到合并必须在新文件上失败,但我认为程序应该复制它们而不是尝试合并。我什至尝试忽略(几乎没用的)文件:

ignore = Name {Sites/*/readme.txt}

但出于某种原因,Unison 并没有忽略它们。问题是,我需要合并文本文件,因为我的文档依赖于简单的文本文件。default.prf看起来像这样:

# default profile

servercmd=/opt/local/bin/unison

root = /Users/timm/
root = ssh://mac2.local//Users/timm/

path = Sites

auto = true
times = true

# ignore permissions
perms = 0
rsrc = false

ignore = Name {.DS_Store}
ignore = Name {.localized}
ignore = Name {*/*.app/*}

ignore = Name {*/temp/*}
ignore = Name {*/cache/*}

ignore = Name {Sites/*/wp-content/languages/*}
ignore = Name {Sites/*/wp-content/plugins/*}
ignore = Name {Sites/*/wp-content/themes/twenty*}
ignore = Name {Sites/*/wp-sites/wordpress/*}

# ???
ignore = Name {Sites/*/readme.txt}

# diff and merge
diff = diff
merge = Name *.txt -> diff3 CURRENT1 CURRENTARCHOPT CURRENT2 > NEW
backup = Name *.txt
backupcurrent = Name *.txt
maxbackups = 10

log = true
logfile = /Users/timm/.unison/unison.log

我在 Mac El Capitan 10.11.6 上运行 Unison 2.48.4。

我是否忽略了一个设置?有没有其他方法可以使 Unison 复制而不合并新文件?

4

0 回答 0