2

Можно ли получить отчет из git diff или связанных с ним команд, который исключает определенную категорию изменений?

Меня попросили рассмотреть изменение, в котором огромное количество файлов прошло эквивалент s/2016/2017/g. (Мы обновили стороннюю флягу, и в результате многие наши операции импорта теперь ссылаются на другой пакет.)

Существуют ли варианты просмотра этого различия из командной строки, но подавления всех изменений, которые просто состоят из чего-то вроде следующего, чтобы я мог сосредоточиться на любых логических изменениях?

Игнорировать:

-import com.example.2016_2.util.Utility
+import com.example.2017_2.util.Utility

Держать:

-Utility util = new Utility();
+Utility util = Utility.create();

Если ответ состоит в том, чтобы написать свой собственный скрипт и интегрировать его через git diff --porcelain или установив GIT_EXTERNAL_DIFF , я, безусловно, играю ; просто интересно, если

  1. это поддерживается из коробки, и я почему-то пропустил это на странице руководства;
  2. есть и другие команды git diff *, которые я могу использовать для этого;
  3. если соответствующий исполняемый файл diff уже существует, который я могу предоставить через GIT_EXTERNAL_DIFF

1 ответ1

0

Есть много способов для сравнения файлов, git diff - это хорошо, но есть и другие. Столкнувшись с той же задачей, я бы:

  • проверить код с последующими изменениями
  • скопировать все дерево кода в другой каталог
  • отменить изменение 2016/2017 в этой копии
  • в git tree, посмотрите исторический коммит
  • выполнить рекурсивное сравнение между двумя деревьями (BeyondCompare в Windows, kdiff3 в Linux)

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