возможно, стоит заняться переформатированием как командой: заставить всех членов команды согласиться запускать форматировщик для любого файла, который они изменяют, и сделать надлежащее форматирование обязательным требованием во всех обзорах кода в будущем. Со временем ваша команда охватит большую часть кода, и информация об авторстве будет в основном уместной, поскольку каждый файл, который будет переформатирован, должен был быть изменен в любом случае. В конечном итоге вы можете получить небольшое количество файлов, которые никогда не переформатируются, потому что они очень стабильны и не нуждаются в обновлениях, и вы можете переформатировать их (потому что некоторые плохо отформатированные файлы сводят вас с ума) или нет (потому что в любом случае никто не работает в этих файлах).

аюсь отформатировать весь репо с помощью инструмента форматирования кода. При этом я хочу сохранить информацию о том, кто совершил какую строку, чтобы такие команды, какgit blame по-прежнему показывать правильную информацию. Под этим я подразумеваю, что он должен показывать автора, который ранее редактировал каждую строку (до того, как она была отформатирована).

Есть команда git filter-branch, которая позволяет вам запускать команды для каждой ревизии репо, начиная с начала времени.

git filter-branch --tree-filter '\
  npx prettier --write "src/main/web/app/**/**.{js, jsx}" || \
  echo "Error: no JS files found or invalid syntax"' \
  -- --all

Это займет целую вечность, и на самом деле меня не волнует прошлое. Я просто хочу отформатировать основную ветку, не меняя владельца каждой строки. Как я могу это сделать? Я пытался играть сrev-list в конце и другие типы фильтров, но это все еще не работает. Должен быть способ отформатировать кодовую базу, сохраняя информацию об авторе для каждой строки.

Ответы на вопрос(2)

Ваш ответ на вопрос