Scoping игнорировать декларации в унисон
Я использую унисон для синхронизации двух компьютеров, и в целом я хотел бы игнорировать все скрытые файлы, кроме нескольких. У меня есть файл настроек 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, "ignorenot" может быть здесь полезным.
Это предпочтение отменяет предпочтение игнорировать. Он дает список шаблонов (в том же формате, что и игнорировать) для путей, которые определенно не следует игнорировать, независимо от того, соответствуют ли они одному из шаблонов игнорирования.
Я не опытный пользователь Unison, поэтому я не знаю, применимо ли здесь следующее предостережение:
Обратите внимание, что семантика ignore и ignorenot немного нелогична. При обнаружении обновлений Unison анализирует пути в порядке глубины, начиная с корней реплик и работая вниз. Прежде чем исследовать каждый путь, он проверяет, соответствует ли он игнорированию и не соответствует игнорированию; в этом случае он пропускает этот путь и всех его потомков. Это означает, что если какой-либо родитель данного пути соответствует шаблону игнорирования, он будет пропущен, даже если сам путь соответствует шаблону игнорирования. В частности, размещение ignore = Path * в вашем профиле и последующее использование ignorenot для выбора определенных путей для синхронизации не будут работать. Вместо этого вы должны использовать предпочтения пути, чтобы выбрать определенные пути для синхронизации.
Я понимаю, что это происходит через месяц после твоего вопроса. Тем не менее, я надеюсь, что это полезно.