Lendo algumas respostas "Por que um DVCS é melhor", responde a várias perguntas sobre programadores. Parece que todos dizem que, em geral, o DVCS é melhor, já que você não tem uma corrida de consolidação em grandes projetos, IE commit, desatualizada. atualizar, confirmar, desatualizado novamente, confirmar, ainda desatualizado etc.
O DVCS limita isso com o conceito de push. No entanto, em projetos muito grandes, não haveria uma "corrida de empurrão", especialmente no final do dia? Eu sei que no Git isso é um pouco remediado pela constante ramificação de tudo, mas no Mercurial você não ramifica, cria uma nova cabeça.
Problema que vejo
- O usuário tenta enviar
- Desatualizado (o mercurial não permitirá que você pressione se o seu repositório local estiver desatualizado), para que você puxe e mescle suas alterações locais
- O usuário tenta enviar por push novamente, mas enquanto eles estavam mesclando alguém enviado por push, está desatualizado novamente
- Puxe e junte novamente
- Ainda desatualizado
- Repetir
Soa familiar?
Este é um problema real com repositórios mercuriais muito grandes e populares? E dentro de uma empresa, quando todo mundo faz o esforço final do dia?
--close-branch
ao cometer - e mercurial nomeou ramos, você não tem que clone para um novo diretório
hg branch myfeature; hg ci -m "Starting feature branch"; hg push --new-branch