Форматирование кода имеет значение. Даже отступы имеют значение . И последовательность важнее, чем незначительные улучшения. Но проекты , как правило , не имеют четкой, полной, поддающейся проверке и вынужденное руководство по стилю от 1 -й день, и значительные улучшения могут прийти в любой день. Может быть, вы найдете это
SELECT id, name, address
FROM persons JOIN addresses ON persons.id = addresses.person_id;
может быть лучше написано как / лучше написано, чем
SELECT persons.id,
persons.name,
addresses.address
FROM persons
JOIN addresses ON persons.id = addresses.person_id;
работая над добавлением дополнительных столбцов в запрос. Возможно, это самый сложный из всех четырех запросов в вашем коде, или тривиальный запрос среди тысяч. Неважно, насколько сложен переход, вы решаете, что оно того стоит. Но как вы отслеживаете изменения кода при основных изменениях форматирования? Вы можете просто сдаться и сказать «это точка, с которой мы начинаем снова», или вы можете переформатировать все запросы во всей истории хранилища.
Если вы используете распределенную систему контроля версий, такую как Git, вы можете вернуться к первому коммиту и переформатировать свой путь оттуда к текущему состоянию. Но это большая работа, и всем остальным придется приостановить работу (или быть готовым к матери всех слияний), пока она продолжается. Есть ли лучший способ изменить историю, который дает лучший из всех результатов:
- Одинаковый стиль во всех коммитах
- Минимальная работа слияния
?
Для пояснения, речь идет не о передовых практиках при запуске проекта, а о том, что следует делать, если крупный рефакторинг был признан Good Thing ™, но вы все еще хотите отслеживать историю? Никогда не переписывать историю - это хорошо, если это единственный способ гарантировать, что ваши версии всегда работают одинаково, но как насчет преимуществ чистого переписывания для разработчиков? Особенно, если у вас есть способы (тесты, определения синтаксиса или идентичный двоичный файл после компиляции), чтобы гарантировать, что переписанная версия работает точно так же, как и оригинал?