В бизнес-среде у вас есть две проблемы.
- Технические
- Политическая
С технической точки зрения переформаторы - это зрелая технология. В сочетании с хешированием / контрольными суммами, пока язык не чувствителен к пробелам, вы технически безопасны для этого. Вы также хотите убедиться, что делаете это во время простоя, когда ни одна крупная вилка не ожидает слияния. Реальные изменения невозможно будет отделить от переформатирования, поэтому делайте их отдельно. Слияние может быть очень сложным для любого, кто работает на вилке. Наконец, я бы сделал это только после того, как реализовал полный охват тестовых случаев. По причине 2 ...
Политически, если вы не знаете, как убедить руководство, откуда вы знаете, что это безопасно? Точнее, это безопасно для вас. Для старшего, пользующегося доверием разработчика, который контролирует процессы в магазине, это более простая работа, но для разработчика, работающего в крупной политической организации с красной лентой, вам необходимо убедиться, что вы охватили все свои основы.
Аргумент, который я привел в 2010 году, был, пожалуй, слишком умным, но парсеры, переформаторы, симпатичные принтеры - это просто программное обеспечение; они могут иметь ошибки, вызванные вашей кодовой базой, ОСОБЕННО, если это C ++. Без модульных тестов везде, с большой кодовой базой, вы не сможете на 100% подтвердить, что конечный результат идентичен.
Как разработчик, я параноик, и эта идея меня беспокоит, но пока вы используете:
- Контроль источника
- Правильное тестовое покрытие
тогда все в порядке.
Однако, подумайте над этим: теперь руководство осознает, что вы работаете над проектом из миллиона строк с «массовым изменением». Ранее обнаруженная ошибка сообщается после вашего переформатирования. Теперь вы главный подозреваемый в возникновении этой ошибки. Является ли это «безопасным», имеет несколько значений. Это может быть небезопасно для вас и вашей работы.
Звучит банально, но пару лет назад я помню, что что-то произошло. У нас был отчет об ошибке, пришедший через день после окна ночного обслуживания, когда я выполнил только реконфигурацию и перезагрузку сервера IIS . В течение нескольких дней рассказывал, что я, должно быть, облажался или развернул новый код. Никто не сказал это напрямую, но я получил взгляд от вице-президента, который так сказал. Мы наконец отследили это до ошибки, которая уже была в коде, была выдвинута ранее, но не обнаруживалась, пока человек QA недавно не изменил тестовый пример, но, честно говоря, некоторые люди даже не помнят эту часть; они просто помнят, как пришли на следующий день к новой ошибке.
EDIT: в ответ на правки jtsampson . Ваш вопрос был не о том, как это сделать; это было «Как убедить руководство в том, что это безопасно». Возможно, вам следовало бы спросить: «Безопасно ли? Если да, то как это сделать, безопасно». Мое утверждение указывало на иронию вашего вопроса, поскольку вы предполагали, что это безопасно, не зная как. Я ценю техническую сторону переформатирования, но я отмечаю, что есть риск, связанный с чем-то нетривиальным, и если вы не добавите в него нужного человека, это может быть испорчено. Будет ли эта задача отвлекать от других задач программистов, отвлекать их на пару дней? Будет ли это противоречить незафиксированным изменениям некоторых других кодеров? Источник пересматривается вообще? Есть ли какой-либо встроенный скрипт, чувствительный к пробелам, такой как Python ? Все может иметь неожиданный побочный эффект; для нашей среды было бы трудно получить временное окно, в котором никто не работает над веткой, а массовое переформатирование сделает их слияние довольно уродливым. Отсюда мое отвращение к массовому переформатированию, ручному или автоматизированному.