Прочитав несколько «Почему DVCS лучше», вы получите ответы на несколько вопросов о программистах. Все они, похоже, говорят, что в целом DVCS лучше, так как у вас нет гонки коммитов в больших проектах, IE коммит, устарел, так обновить, зафиксировать, снова устареть, зафиксировать, все еще устареть и т.д.
DVCS ограничивают это концепцией толчка. Однако в очень крупных проектах не будет «гонка толчка», особенно в конце дня? Я знаю, что в Git это несколько исправлено постоянным ветвлением для всего, но в Mercurial вы не ветвитесь, вы создаете новую голову.
Я вижу проблему
- Пользователь пытается нажать
- Устаревший (Mercurial не позволит вам выдвинуть, если ваш локальный репо устарел), поэтому вы извлекаете и объединяете локальные изменения
- Пользователь пытается нажать еще раз, но когда он сливался, кто-то другой нажал, поэтому он снова устарел
- Потяните и снова объедините
- Все еще устарел
- Повторение
Звучит знакомо?
Это реальная проблема с очень большими и популярными ртутными репозиториями? Как насчет внутри компании, когда каждый делает свой последний толчок дня?
--close-branch
при фиксации - и у mercurial есть названные ветки, вам не нужно клонировать новый каталог
hg branch myfeature; hg ci -m "Starting feature branch"; hg push --new-branch