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