Використовувати історію фіксації, підтримувану системою контролю версій, майже нічого не коштує. Однак під час великого проекту рефакторингу (або реорганізації / очищення) зусилля, функції та класи та навіть простори імен будуть переміщені; іноді кілька файлів будуть об'єднані разом, а інші файли будуть розділені. Ці зміни часто призводять до втрати оригінальної історії фіксації кількох файлів.
На мою особисту думку, вдосконалення організації проекту важливіше, ніж збереження історії вихідного коду. Хороша організація проекту дозволяє постійно додавати нові функції з розумними зусиллями, тоді як значення історії вихідного коду видається сумнівним.
Крім того, із застосуванням одиничного тестування швидко визначаються проблеми регресії. Поки остання версія продовжує задовольняти всі вимоги до програмного забезпечення, чи насправді нам потрібно зберігати історію вихідного коду?
Я розумію, що будь-який відправлений вихідний код повинен зберігатися через необхідність надання підтримки клієнтам, не вимагаючи від них великого оновлення версії. Але окрім цього, чи є якесь значення у збереженні історії вчинених кодів?
Чи грає історія фіксації вихідного коду якусь роль у спілкуванні між членами команди? Що робити, якщо ми скасуємо історію комісій, але замість цього покладаємось на "вихідний код" + "код тестування блоку" для зв'язку?
Чи існування історії комісій змушує когось скаржитися на довгострокове документування важливої інформації про проект, наприклад, про основні зміни дизайну / вимог та потоки думок, які спричинили ці зміни?
These changes often lead to the loss of the original commit history of a few files.
Погляньте, наприклад, на "git blamin" - нічого не втрачається. Іноді це може бути дещо складніше знайти, але це завжди є.