У меня есть связанный вопрос. Я прочитал этот вопрос и прочитал рекомендованные ссылки и видео, и я вижу преимущества, но я не вижу общего, о чем говорят люди, думающие об этом.
Наша команда состоит из 8-10 разработчиков, которые работают над одной большой кодовой базой, состоящей из 60 проектов. Мы используем Subversion и имеем основной ствол. Когда разработчик запускает новое дело Fogbugz, он создает ветку svn, выполняет работу над веткой, и когда они это делают, они объединяются обратно в ствол. Иногда они могут оставаться на ветке в течение продолжительного времени и объединять ствол с веткой, чтобы получить изменения.
Когда я смотрел, как Линус говорит о людях, создающих ветку и никогда не делающих этого снова, это совсем не мы. Мы создаем около 50-100 веток в неделю без проблем. Самая большая проблема - это слияние, но мы также неплохо справились с этим. Я склонен сливаться с помощью fogbugz case & checkin, а не со всем корнем ветви.
Мы никогда не работаем удаленно, и мы никогда не делаем ветви из веток. Если вы единственный, кто работает в этом разделе базы кода, то слияние со стволом проходит гладко. Если кто-то еще изменил тот же фрагмент кода, то слияние может стать беспорядочным, и вам, возможно, придется сделать какую-то операцию. Конфликты - это конфликты, я не понимаю, как любая система могла бы сделать это правильно большую часть времени, если только она не была достаточно умна, чтобы понимать код.
После создания ветки следующая проверка 60k + файлов занимает некоторое время, но это будет проблемой для любой системы контроля версий, которую мы будем использовать.
Есть ли какая-то польза от какой-либо DVCS, которую мы не видим, которая бы нам очень помогла?