Практически ничего не стоит использовать историю коммитов, поддерживаемую системой контроля версий. Тем не менее, во время крупного проекта по рефакторингу (или реорганизации / очистке) функции и классы и даже пространства имен будут перемещаться; иногда несколько файлов будут объединены вместе, а другие файлы будут разделены. Эти изменения часто приводят к потере исходной истории фиксации нескольких файлов.
По моему личному мнению, поддержание организации проекта важнее, чем сохранение истории исходного кода. Хорошая организация проекта позволяет непрерывно добавлять новые функции с разумными усилиями, в то время как ценность истории исходного кода представляется сомнительной.
Кроме того, с использованием модульного тестирования быстро выявляются проблемы регрессии. Пока последняя версия продолжает удовлетворять всем требованиям к программному обеспечению, нужно ли нам на самом деле сохранять историю исходного кода?
Я понимаю, что любой отправленный исходный код должен быть сохранен из-за необходимости оказывать поддержку клиентам, не требуя от них обновления основной версии. Но помимо этого, есть ли смысл хранить историю коммитов исходного кода?
Играет ли история принятия исходного кода какую-либо роль в общении между членами команды? Что если мы отменим историю коммитов, а вместо этого будем полагаться на «исходный код» + «код модульного тестирования» для связи?
Делает ли существование истории коммитов успокаивающим долгосрочное документирование важной информации о проекте, такой как основные изменения проекта / требований и потоки мыслей, которые привели к этим изменениям?
These changes often lead to the loss of the original commit history of a few files.
Посмотрите, например, на "мерзавец" - ничего не потеряно. Иногда это может быть немного сложнее найти, но это всегда есть.