Я регулярно использую патч gnu-utils и diff. Используя git, я часто делаю:
git diff
Часто простые изменения создают большой патч, потому что единственное, что изменилось, это, например, добавление цикла if/else, а все внутри - вправо.
Рассмотрение такого патча может быть громоздким, потому что только линейное сравнение вручную может указывать, изменилось ли что-то в пределах отступающего кода. Мы можем говорить только о нескольких строках кода или о десятках (или многом другом) вложенного кода. (Я знаю: такая гипотетически большая функция лучше будет разбита на более мелкие функции, но это не так).
Невозможно распознать GNU diff/patch, когда единственное изменение в кодовом блоке - это отступ, и пусть разработчик знает столько же?
Существуют ли какие-либо другие средства сравнения, которые работают таким образом?
Изменить: Хорошо, есть --ignore-space-change
, но тогда мы находимся в любой ситуации: либо у нас есть человеко-читаемый патч, либо у нас есть полный патч, который умеют читать. Разве мы не можем иметь лучшее из мира с более сложным инструментом сравнения, который бы отображал изменения человеческого пространства для того, что они делают, позволяя машине полностью применять патч?