У нас есть проект с 500 000 строк кода, управляемый с помощью git, многим из которых несколько лет. Мы собираемся внести ряд изменений, чтобы привести старый код в соответствие с текущими стандартами и передовой практикой сообщества разработчиков в отношении соглашений об именах, обработки исключений, отступов и т. Д.
Вы можете думать об этом как о чем-то между красивой печатью и низким уровнем / механическим рефакторингом.
Этот процесс, вероятно, затронет почти каждую строку кода в базе кода (~ 85%), и некоторые строки будут подвергаться целым пяти модификациям. Все изменения должны быть семантически нейтральными.
Есть ли способ сделать изменения прозрачными для git обвинений и т. Д., Чтобы при просмотре кода через месяц мы увидели коммит, в котором была введена логика, а не тот, в котором отступ или капитализация был изменен?
Какой лучший способ вытащить слияния из вилок, которые не прошли этот процесс? Мой нынешний план состоял бы в том, чтобы сценарий клонировал раздвоенное репо, применил автоматизированный процесс к нему и его базе, изменил их, затем применил diff. Но я бы хотел получить более четкий ответ.
Есть ли какие-либо другие проблемы такого рода, которых я не вижу, и если да, что можно сделать, чтобы их смягчить? Я полагаю, что git bisect и т. Д. Должны быть в порядке, git log и т. Д. Пересечение большого пропасти будет раздражать, если вы не будете осторожны, и git diff будет безнадежным, но я не уверен, что я не пропускаю другой болевая точка.