У меня проблема с git diff. Позвольте мне сначала рассказать вам об истории.
Мне только что дали довольно непопулярный проект от клиента. Проблема состоит в том, что у них есть 2 ветви в их scm. Эти две ветви не были объединены целую вечность, но теперь они должны объединить их. Большинство изменений тривиальны, поэтому объединение с помощью git занимает всего около 30 минут.
Однако мой клиент не верит, что процесс слияния может быть автоматизирован. Поэтому они хотят рассмотреть слияние, имея список diff с различиями между всеми 4 версиями кода в игре (базовая и версия a, базовая и версия b, a и b и т. Д.).
Это тоже довольно тривиально, но тут возникает проблема. Поскольку между этими ветками много изменений, списки различий очень длинные (около 50 Мб каждый), и поэтому списки бесполезны. Теперь мой клиент хочет, чтобы изменения были сгруппированы.
В этих «сгруппированных различиях» есть 4 основные группы. Я хотел бы, чтобы git diff мог игнорировать отдельные группы в это время.
g1: есть много слэшей, которые изменили свое направление. Поэтому я хотел бы, чтобы git интерпретировал / и \ alike. Я узнал, как заставить git игнорировать всю строку, если она содержит косую черту, но это не то, что мне нужно, поскольку путь (откуда идет косая черта) мог измениться.
g2: Эта проблема структурная очень похожа на описанную выше, за исключением того, что у меня есть больше символов. Есть много форматирования в журнале, который был изменен. В основном относящиеся к датским буквам, то есть «æ» было изменено на «& aelig;», «ø» было изменено на «& oslash;» и т.д.
g3: множество комментариев было изменено. Клиенты обеспокоены тем, что некоторые «* /» могут не быть объединены. Я не вижу, как это проверить. У кого-нибудь из экспертов есть идея?
g4: все, что не упомянуто выше. Это считается реальными изменениями.