У нас есть довольно большая база кода, включающая около 60000 коммитов. Мы хотим переформатировать все наши .java-файлы, сохраняя при этом историю git. Таким образом, подход, который мы использовали, - использовать фильтр-ветвь git -tree-filter для переформатирования всей базы кода, сохраняя при этом историю неповрежденной. Но есть несколько вопросов, на которые я не могу найти ответ.Реформат всей кодовой базы с git rewrite
Когда я применяю --tree-фильтр и передать команду, которая переформатирует все файлы .java в корневом каталоге, то переписывание происходит, но в самом конце, я вижу все файлы .java в промежуточной области. Требуется ли фиксация на каждом этапе перезаписи или происходит автоматически?
git filter-branch, похоже, принимает ряд коммитов, и это заставило меня задаться вопросом, можно ли сохранить идентификатор фиксации перед каждым переписыванием и возобновить в случае сбоя. Возобновление важно, так как весь процесс может занять несколько дней (даже на мощном вычислительном экземпляре).
В целях переформатирования всей кодовой базы будет работать -index-filter?
UPDATE: Разъяснения
- код базы составляет около 2,2 миллионов строк кода Java. Не делать переписку git может привести к тому, что примерно 10% -12% кодовой базы будет отнесено к неправильному автору. Это около 200 тыс. Строк кода Java, чего мы хотим избежать. Git rewrite заставляет его выглядеть так, как человек, внесший изменения, сделал это правильно.
Непонятно, что вы подразумеваете под «в конце ... все файлы .java [находятся] в промежуточной области». Команда фильтра-ветви заканчивается, по существу, проверкой отфильтрованного результата, поэтому, конечно, область промежуточного этапа не пуста, если только фильтр не пуст. – torek
Из любопытства, какой инструмент переформатирования вы планируете использовать? Джалопи или что-то еще? –
Инструмент, с которым мы договорились, заключается в том, чтобы вызывать форматирование кода Eclipse (на самом деле исправленная версия его как последняя имеет ошибки, которые не сработают для нас) из [командной строки] (http://blogs.operationaldynamics.com/андрей/программное обеспечение/Java-гном/затмение-код формата, из-командной строки). Это немного медленнее, но каждый другой инструмент, который мы рассматривали в какой-то проблеме, что делает его неосуществимым для нас. – Karthik