Применить файловую структуру diff / patch на удаленной системе? - PullRequest
1 голос
/ 09 октября 2008

Существует ли инструмент, который создает diff файловой структуры, возможно, на основе манифеста MD5. Моя цель - отправить по сети пакет, содержащий новые / обновленные файлы и список файлов для удаления. Необходимо скопировать новые / обновленные файлы и удалить файлы, которые были удалены в структуре исходного файла?

Ответы [ 2 ]

3 голосов
/ 10 октября 2008

Вы можете попробовать rsync. В зависимости от ваших потребностей, команда может быть такой простой:

rsync -az --del /path/to/master dup-site:/path/to/duplicate

Цитата с сайта rsync :

rsync - это утилита с открытым исходным кодом, которая обеспечивает быстрый инкрементальный файл перечислить. rsync находится в свободном доступе под GNU General Public License и в настоящее время поддерживается Уэйн Дэвисон.

Или, если вы предпочитаете Википедия :

rsync - это программное приложение для Unix-системы, которые синхронизируют файлы и каталоги из одного места в другой при минимизации передачи данных используя дельта-кодирование, когда это уместно. Важной особенностью rsync не является найдено в большинстве похожих программы / протоколы в том, что зеркалирование происходит только с одним передача в каждом направлении. Rsync может копировать или отображать содержимое каталога и копировать файлы, при необходимости используя сжатие и рекурсия.

1 голос
/ 14 октября 2009

@ vfilby Я занимаюсь реализацией чего-то подобного.

Я уже некоторое время использую rsync, но он становится прикольным при развертывании на удаленном сервере с изменениями разрешений, которые находятся вне моего контроля. С помощью rsync вы можете не включать разрешения, но они по-прежнему рассматриваются по какой-то причине.

Я сейчас использую git diff. Это очень хорошо работает для текстовых файлов. Diff генерирует патчи, а не MANIFEST, который вы должны включить в свои файлы. Хорошая вещь о исправлениях - то, что уже есть установленная структура для использования и тестирования этих исправлений прежде, чем они будут применены.

Например, с помощью утилиты исправления, которая входит в стандартную комплектацию любого Unix-бокса, вы можете запустить исправление в режиме пробного запуска. Это скажет вам, действительно ли патч, который вы собираетесь применить, будет применен перед его запуском. Это поможет вам убедиться, что файлы, которые вы обновляете, не изменились во время подготовки патча.

Если это похоже на то, что вы ищете, я могу уточнить мой процесс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...