Контроль версий это механизм делающий что угодно, но только не контроль версий в истинном смысле понятия контроль.
О том и речь.
Мне не нужно, чтобы весь исходник в несколько тысяч строк был исчеркан красным цветом (обнаруженные программой сравнения текста отличия) просто из-за того, что программист решил дать более удачное название переменной или функции.
Мне нужно чтобы система контроля версий сказала мне в одном-двух предложениях что изменилось. Чтобы я мог понять это за 1-2 секунды просто бросив взгляд на результаты сравнения. А не чтобы я тратил часы, дни и недели пытаясь разобраться в испещренном красным цветом искходнике: "что же он хотел-то когда правил исходник"
А пока что системы контроля версий просто напоминают бэкапы, в которых программист должен вручную обеспечивать атомарность изменений версий.
Т.е. опять все зависит от квалификации и добросовестности программиста.
До сих пор помню, как мне дали две версии написанного другом программистом софта.
И как мне пришлось недели две приводить два исходника "к общему знаменателю" (делать одинаковые названия у одинаковых функций и переменных, распологать определения функций и переменных в одинаковом порядке и одинаковом форматировании и прочее).
В конце концов было выяснено, что он просто поменял значение константы и изменил код одной функции.
И изначальный объем отличий в более чем 6000 строк кода я свел в 12 строкам.
И на это я потратил две недели. Потому что программа была из серии "Mission Critical" и нужно было на все 140% быть уверенным, что я правильно понял то, что было изменено.
Так я понял насколько несовершенны ещё средства сравнения исходников и форма отчета об отличиях в версиях
А если бы мне дали не 2 версии софта написанного одним программистом, а целый репозиторий с 600 версиями, написанных разными программистами?
Ну с целью, чтобы я выяснил начиная с какой версии была привнесена бага.
Да проще тогда повеситься сразу