1

У меня есть простой сценарий, когда мне нужно генерировать выпуски для некоторого программного обеспечения на основе Java. То, что я делал вручную, это:

1- Соберите программное обеспечение. 2 - Скопируйте все, что нужно, в "release dir". 3 - Сожмите файл.

Теперь я добавил CI (jenkins) для создания сборок для меня. Затем я попытался rsync обновить каталог базовой установки (который содержит последнюю сборку). Проблема с RSYNC в том, что он использует временные метки. Поскольку я просто создаю новую версию, все метки времени изменились. Я что-то могу сделать, чтобы сравнить файлы в двоичном режиме?

РЕДАКТИРОВАТЬ

Это то, что я сделал. На данный момент src1 и src2 одинаковы. Единственная разница - это временная метка, так как src2 является копией src1. Затем rsync копирует все файлы в dst. Я ожидал, что DST будет пустым.

rsync -av --progress --stats --compare-dest = ../ src1/ src2/ dst/

Поэтому я попробовал следующее. Я сгенерировал копию src1 с той же временной меткой, и когда я выполняю ту же команду, dst пуст. Что заставило меня поверить, что rsync использует временные метки.

2 ответа2

3

Нужно использовать опцию, в противном случае по умолчанию используется быстрое сравнение временных меток и размеров

--checksum

1

rsync эффективно сравнивает файлы в двоичном режиме и передает содержимое, только если обнаружена разница в двоичном содержимом.

Насколько я понимаю, проверки времени модификации (и размера) используются для выбора файлов для сравнения.

У rsync есть --size-only

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