git diff игнорирует шаблоны в файлах - PullRequest
5 голосов
/ 16 декабря 2010

У меня проблема с 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: все, что не упомянуто выше. Это считается реальными изменениями.

1 Ответ

1 голос
/ 16 декабря 2010

Вы можете написать что-то, что будет анализировать различия и удалять или удалять некоторые из этих изменений. В этом может помочь некоторая магия регулярных выражений. Я считаю это наиболее применимым к g1 и g2.

Не уверен, что делать с g3.

...