1

У меня есть два корня, /sync и ssh://bob@remotehost//sync . Эти корни содержат три подпапки: paul , bob и sam . В настоящее время я синхронизирую их, используя следующий скрипт:

rsync -a --delete --delete-excluded --delete-after --force\
  /sync/paul/ bob@remotehost:/sync/paul
rsync -a --delete --delete-excluded --delete-after --force\
  bob@remotehost:/sync/bob/ /sync/bob
unison /sync/sam ssh://bob@remotehost//sync/sam

Я хочу создать унисонный профиль, который управляет всеми тремя подпапками. Пока у меня есть следующее:

# Define roots and paths
root = /sync
root = ssh://bob@remotehost//sync
path = paul
path = bob
path = sam

# Preserve timestamps
times = true

# Force single direction for some paths
forcepartial = Path paul/* -> /sync
forcepartial = Path bob/* -> ssh://bob@host//sync

Используя этот профиль, я ожидал, что все изменения в /sync/paul будут распространены в ssh://bob@remotehost//sync/paul и все изменения в /sync/paul будут принудительно удалены. Я также ожидал наоборот для пути bob . Однако это не то, что я вижу. В моих тестовых прогонах Unison хочет распространять новые файлы и папки в обоих направлениях для обоих путей, paul и bob .

Как заставить Unison вести себя как rsync -a --delete --delete-excluded --delete-after --force $SOURCE/ $DEST для путей bob и paul?

1 ответ1

2

Как выясняется, forcepartial = Path paul/* -> ... не соответствует sub file- и foldernames, начинающимся с точки (например, paul/.config). Однако вместо этого можно использовать BelowPath paul или Regex paul/.* . Следующее использование BelowPath бы моей цели:

...
forcepartial = BelowPath paul -> /sync
forcepartial = BelowPath bob -> ssh://bob@host//sync

То же самое, но с использованием Regex:

...
forcepartial = Regex paul/.* -> /sync
forcepartial = Regex bob/.* -> ssh://bob@host//sync

На этой странице предполагается, что ключевое слово Regex также может использоваться для сопоставления подпапок, подразумевая, что forcepartial = Regex somefolder/.* -> ... будет соответствовать папке paul/somefolder и всем ее дочерним элементам . Я не экспериментировал с этим, поэтому не могу сказать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .