Обращаясь к вашим комментариям редактирования.
Даже RCS и SCCS (дедушка VCS для большей части того, что в наши дни работает на Unix / Linux) разрешают одновременный доступ к редактированию файлов, и я не имею в виду отдельные ветви. С SCCS вы могли бы сделать 'get -k SCCS/s.filename.c
' и получить редактируемую копию файла - и вы могли бы использовать опцию ('-p
' IIRC), чтобы получить ее на стандартный вывод. Вы могли бы, чтобы другие люди делали то же самое. Затем, когда пришло время для регистрации, вы должны были убедиться, что вы начали с правильной версии или выполнить слияние, чтобы иметь дело с изменениями с момента сбора вашей начальной версии и т. Д. И ни одна из этих проверок не была автоматизирована, и конфликты не обрабатывались и не отмечались автоматически и т. д. Я не утверждал, что это было легко; просто это можно было сделать. (Согласно этой схеме блокировки будут удерживаться только в течение короткого времени, пока выполняется проверка / слияние. У вас все еще есть блокировки - их требует SCCS, а RCS может быть скомпилирована с обязательной строгой блокировкой - но только для короткой продолжительности, но это тяжелая работа - никто не делал этого, потому что это такая тяжелая работа.)
Современные VCS решают большинство проблем автоматически или почти автоматически. В этом их огромная сила по сравнению с системами предков. А поскольку объединение является простым и почти автоматическим, оно допускает разные стили разработки.
Мне все еще нравится блокировка. Основной рабочей системой, которую я использую, является (IBM Rational) Atria ClearCase; для собственной разработки я использую RCS (отказавшись от SCCS около 2000 года). Оба используют блокировку. Но у ClearCase есть хорошие инструменты для слияния, и мы делаем это немало, не в последнюю очередь потому, что в продукте, над которым я работаю, есть по крайней мере 4 кодовых линии (то есть 4 основных версии). И исправления ошибок в одной версии довольно часто применяются к другим версиям, почти дословно.
Итак, VCS только для блокировки обычно не имеет достаточно хороших средств слияния, чтобы поощрять использование одновременного редактирования файлов. Более современные VCS имеют лучшие средства слияния (а также ветвления) и, следовательно, не так сильно нуждаются в блокировке для более чем кратчайшего срока (достаточного для того, чтобы операции над файлом - или файлами в более продвинутых системах - были атомарными) .