Командная работа в Mercurial (или другой DVCS)
От: Андрей Е  
Дата: 13.10.11 11:02
Оценка:
Расскажите пожалуйста, как можно правильно организовать командную работу в распределенной системе контроля версий?
Допустим есть центральный репозиторий.
Есть локальные репозитории у каждого из разработчиков.

В процессе работы разработчик создает большое количество мелких промежуточных коммитов. При этом зачастую проекты на этих коммитах не собираются или не работают.
Так же разработчик кучу мелких веток и по завершении работы на ними вливает их в основную ветку.
Еще у него висит куча тупиковых незавершенных веток.

По умолчанию команда push проталкивает всю это гору ревизий на центральный сервер. Даже если эта гора ревизий добавляет в проект одну фичу. Проталкиваются даже тупиковые ветки.
Если изменения выкладывают несколько разработчиков, центральный репозиторий быстро превращается в помойку.

Можно попытаться ограничить разработчиков, и требовать чтобы они коммитили только когда завершают работу над фичей. Но тогда теряются все достоинства работы с распределенной системой. Зачем мне свой репозиторий, если я не могу творить с ним что хочу?


Поделитесь пожалуйста опытом, как вы решаете эту проблему?

Возможно можно как-то вести некую основную ветку и сливать в нее только завершенные фичи, без промежуточных коммитов? И на центральном репозитории держать только эту ветку.
Или есть какой то другой способ?

В первую очередь, интересует решение этой проблемы для Mercurial. Но если есть системы, в которых эта проблема решается просто и естественно, было бы тоже интересно узнать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.