Хоча я використовую і люблю DVCS для моїх особистих проектів і цілком бачу, як це полегшує управління внесками у ваш проект від інших (наприклад, ваш типовий сценарій Github), схоже, що для "традиційної" команди може виникнути деякі проблеми з централізований підхід, який застосовують такі рішення, як TFS, Perforce тощо. (Під "традиційним" я маю на увазі команду розробників в офісі, що працює над одним проектом, який жодна людина не має у власності ", і потенційно кожен може торкатися одного і того ж коду.)
Пару цих проблем я передбачив самостійно, але, будь ласка, прислухайтесь до інших міркувань.
У традиційній системі, коли ви намагаєтеся перевірити свої зміни на сервері, якщо хтось інший попередньо перевіряв суперечливу зміну, ви змушені об'єднатися, перш ніж ви зможете перевірити своє. В моделі DVCS кожен розробник перевіряє свою змінюється локально і в якийсь момент підштовхується до якогось іншого репо. Тоді репо має відділення цього файлу, яке змінили 2 людини. Здається, що зараз хтось повинен відповідати за вирішення цієї ситуації. Зазначена особа в команді може не мати достатньої кількості знань про всю кодову базу, щоб мати змогу впоратися з об'єднанням усіх конфліктів. Тож тепер додано додатковий крок, коли хтось повинен підійти до одного з цих розробників, сказати йому, щоб він потягнув і зробив злиття, а потім знову натиснути (або потрібно створити інфраструктуру, яка автоматизує це завдання).
Крім того, оскільки DVCS, як правило, робить роботу на місцях настільки зручною, ймовірно, що розробники можуть накопичити кілька змін у своїх місцевих репортажах перед тим, як натиснути, зробивши такі конфлікти більш поширеними та складнішими.
Очевидно, якщо всі в команді працюють лише в різних областях коду, це не проблема. Але мені цікаво випадок, коли всі працюють над одним кодом. Схоже, централізована модель змушує вирішувати конфлікти швидко і часто, мінімізуючи необхідність робити великі, хворобливі злиття або когось "поліцейського" робити основним репо.
Тож для тих із вас, хто використовує DVCS зі своєю командою у вашому офісі, як ви обробляєте подібні випадки? Чи вважаєте ви, що ваш щоденний (або, швидше за все, щотижневий) робочий процес впливає негативно? Чи є якісь міркування, про які слід знати, перш ніж рекомендувати DVCS на своєму робочому місці?