web-dev-qa-db-ja.com

スコープは一斉に宣言を無視します

私はユニゾンを使用して2台のコンピューターを同期していますが、通常、いくつかを除くすべての隠しファイルを無視したいと思います。ユニゾン設定ファイルがあります(default.prf)次のようになります。

# Unison preferences file

# keep time stamps
times = true
auto = true

ignore = Name .*

path = Documents
path = .hgrc
path = .vimrc

ほとんどの隠しファイルを無視したいのですが、.hgrcおよび.vimrc2台のコンピューター間で同期されます。ただし、上記の設定では、それらも無視されます。それらを同期する問題を解決するにはどうすればよいですか?

3
dzhelil

http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#prefs によると、ここでは「ignorenot」が役立つ場合があります。

この設定は、設定無視を上書きします。無視パターンの1つと一致するかどうかに関係なく、絶対に無視してはならないパスのパターンのリスト(ignoreと同じ形式)を提供します。

私は経験豊富なUnisonユーザーではないため、次の警告がここに当てはまるかどうかはわかりません。

Ignoreとignorenotのセマンティクスは、少し直感に反することに注意してください。更新を検出するとき、ユニゾンはレプリカのルートから始まり、下に向かって深さ優先のパスを調べます。各パスを調べる前に、ignoreに一致するか、ignorenotに一致しないかを確認します。この場合、このパスとそのすべての子孫をスキップします。つまり、特定のパスの親が無視パターンに一致する場合、パス自体が無視しないパターンに一致しても、その親はスキップされます。特に、プロファイルにignore = Path *を入力し、ignorenotを使用して同期する特定のパスを選択しても機能しません。代わりに、パス設定を使用して、同期する特定のパスを選択する必要があります。

これはあなたの質問から1か月以上経っています。それでも、お役に立てば幸いです。

3
Johannes