На первый взгляд это может показаться простым запросом, но я полагаю, что это не из-за некоторых важных тонкостей, которые я хочу отслеживать. Вот сценарий:

У меня есть каталог на домашней рабочей станции, который я клонировал на портативный жесткий диск емкостью 1 ТБ, который можно взять с собой в командировки и использовать с ноутбуком. Это означает, что я изменяю домашнюю копию и мобильную копию в разное время. Это может включать не только изменение файлов, но и создание, удаление, переименование и перемещение файлов. Обе машины работают под управлением последней версии Mountain Lion.

Простая синхронизация (через rsync или unison) не представляется целесообразной, поскольку они синхронизируют все файлы в обоих местах. Это означает, что если я удалил файл в дороге и хотел бы, чтобы это удаление было отражено в моей локальной копии при синхронизации, этого не произойдет, и вместо этого ранее удаленный файл снова появится в мобильной копии.

Почему-то мне нужно решение, достаточно умное, чтобы распознавать удаленные файлы / каталоги, а также те, которые были переименованы. Это почти звучит как то, для чего мне нужно использовать SVN, но я никогда не использовал это вне среды разработки программного обеспечения, где он был полностью настроен для меня. Я не знаю, как бы я реализовал это в моем собственном домашнем окружении.

Существует ли совместимое с Mac OS X решение этой проблемы? Если это так, я был бы очень признателен за указатель в правильном направлении.

2 ответа2

1

Если я правильно понимаю, вы хотите автоматическое действие, которое начнет сравнивать даты изменения каталога, выберите тот, который был наиболее недавно затронут, и используйте эту информацию, чтобы определить, кого следует дублировать на другой.

(это единственный способ решить, существует ли файл на одной стороне только потому, что он только что был создан (затем скопируйте его) или потому что он находится в самой старой папке (затем удалите его).

Я думаю, что это должно быть достигнуто с некоторыми сценариями, но я не достаточно мудр, чтобы сделать это ... Это говорит о том, что, как вы упоминаете, такой процесс не является надлежащим SVN, вы действительно рискуете распространить ошибочное удаление, которое лично мне не хотелось бы ...

У вас также есть готовые приложения для синхронизации (на ум приходит "Synk"), которые действительно способны справиться с этими конфликтами, но моей версии 3 года, и я не уверен, что она не просто "остановится и спросит" в случае конфликт при синхронизации в обе стороны. Может быть, вы можете получить последнюю демо-версию и попробовать - это будет быстрее, чем скриптинг.

0

Unison спросит вас, хотите ли вы распространить удаление, переименование, добавление и т.д. Из одного каталога в другой. Вы можете изменить направление распространения: например, если вы используете Unison со своей домашней рабочей станцией в качестве «левого» корня, а переносное HD - в качестве «правого» корня, и если вы удалили каталог на переносном устройстве, Unison по умолчанию предлагают распространить изменение с «левого» на «правый», т.е. он предложит восстановить каталог на HD. Но затем вы можете изменить это, чтобы перейти от «вправо» к «левому» (нажав <), чтобы каталог был удален с вашей рабочей станции.

Это будет работать так для всех изменений. Помните, что распространение изменений является двунаправленным, и вы можете изменить направление для каждого изменения.

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