Патч применяется в обратном порядке, а файл резервной копии идентичен выходному файлу или отсутствует?

204
bartoli

У меня есть система, которая берет обратные патчи (diff с обратными операндами) и применяет их в обратном режиме. Патч вызывается --backupдля сохранения исходного файла. Тем не менее, я заметил, что нет различий между файлом после обратного патча и result.origфайла.

Используйте случай, если неясно:
я запускаю несколько тестов и сравниваю их результаты. Тесты имеют справочный вывод в refфайле.
Когда запускается тест с выводом result, diff ref resultвызывается, чтобы увидеть, что изменилось.
Если я хочу «игнорировать» этот diff в наборе тестов, я могу поместить вывод этого diff в файл патча. Таким образом, он будет преобразован в ожидаемый выходной поток перед разницей следующего запуска теста.
Поэтому, если я хочу преобразовать результат в ref с этим патчем, я должен использовать patch with --reverse(Обычный патч предыдущего diff преобразует мой ref в мой результат ).
Команда выглядит такpatch -p0 result --backup -R -i some.patch
И .orig, полученный в результате -b во время этого исправления, кажется идентичным исправленному выводу. Это с патчем 2.7.1 на linux. В патче 2.7.4 для cygwin ни один файл orig не создается вообще, если -R

Каково ожидаемое поведение patch --backup --reverse?
Если я хочу получить исходный результат, но только если произошло исправление, мои решения, похоже, либо сохранят копию перед исправлением, на всякий случай, либо исправят результат заново в нереверсивном режиме.
Что бы мне понравилось, так это то, что патч знает, какой файл он будет модифицировать, поэтому он сохраняет резервную копию этого. Похоже, патч принимает содержимое исходного файла в патче, а не файл, который он патчит. Или вообще не генерировать файл orig в зависимости от версии.

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

0

0 ответов на вопрос

Похожие вопросы