Одним из ключевых отличий является то, насколько большие файлы имеют тенденцию быть в среднем. Большие файлы (более 1000 строк), как правило, имеют много независимых изменений, которые легко объединяются. Поэтому тот факт, что кто-то еще активно изменяет файл, над которым вы собираетесь начать работу, вероятно, неинтересен, поэтому вполне нормально, если система затруднит его обнаружение.
Таким образом, вы склоняетесь к стратегии ВК, которая имеет много ветвей и простых слияний. Новый функционал написан в новых ветках.
Если вы работаете с небольшими, сильно связанными файлами, типичными для дизайна ОО, на языке, подобном Java, такие случайные конфликты встречаются гораздо реже. Даже в качестве искусственного примера довольно сложно придумать два набора изменений, которые можно внести в класс (и соответствующие тестовые случаи JUnit), которые можно сделать разумно изолированно, а затем автоматически объединить с помощью инструмента слияния текста. .
Если вы много реорганизуете (переименовываете и разбиваете файлы), это еще больше подчеркивает инструмент слияния.
Таким образом, вам, как правило, лучше всего подходит стратегия VC, которая имеет идентифицируемую и пригодную для использования стабильную магистраль и минимальные ветви.
При первом подходе новые функциональные возможности записываются в новые ветви и объединяются по завершении. Во втором случае он записывается в новые файлы и включается по завершении.
Конечно, если вы сделаете второе, вам определенно понадобится надежная защита от того, что базовый уровень станет непригодным для использования в течение любого промежутка времени (то есть непрерывная интеграция и мощный автоматически запускаемый набор тестов).