我正在使用 unison 同步两台计算机,通常我想忽略除少数文件之外的所有隐藏文件。我有一个 unison 首选项文件 ( default.prf
),如下所示:
# Unison preferences file
# keep time stamps
times = true
auto = true
ignore = Name .*
path = Documents
path = .hgrc
path = .vimrc
尽管我希望忽略大多数隐藏文件,但我希望.hgrc
和.vimrc
在两台计算机之间同步。但是,使用上述设置,它们也被忽略了。我该如何解决同步它们的问题?
答案1
根据http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#prefs,“ignorenot”在这里可能会有用。
此首选项覆盖首选项忽略。它给出了绝对不应忽略的路径的模式列表(格式与忽略相同),无论它们是否恰好与其中一个忽略模式匹配。
我不是一位经验丰富的 Unison 用户,所以我不知道以下警告是否适用于此:
请注意,ignore 和 ignorenot 的语义有点违反直觉。在检测更新时,Unison 会按深度优先顺序检查路径,从副本的根开始向下工作。在检查每条路径之前,它会检查它是否与 ignore 匹配,与 ignorenot 不匹配;在这种情况下,它会跳过此路径及其所有后代。这意味着,如果给定路径的某个父路径与 ignore 模式匹配,那么即使路径本身与 ignorenot 模式匹配,也会跳过它。特别是,在您的配置文件中输入 ignore = Path *,然后使用 ignorenot 选择要同步的特定路径将不起作用。相反,您应该使用路径首选项来选择要同步的特定路径。
我知道这是你提问后一个多月才发表的。不过,我希望它对你有用。