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