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