Leyendo algunas respuestas de "Por qué un DVCS es mejor" responde a varias preguntas sobre programadores. Todos ellos parecen decir que, en general, DVCS es mejor ya que no tienes una carrera de compromiso en proyectos grandes, es decir, un compromiso fuera de fecha. actualizar, confirmar, desactualizado nuevamente, confirmar, aún desactualizado, etc.
DVCS limita esto con el concepto de empuje. Sin embargo, en proyectos muy grandes, ¿no habría una "carrera de empuje", especialmente al final del día? Sé que en Git esto se soluciona un poco con la ramificación constante de todo, pero en Mercurial no se ramifica, crea una nueva cabeza.
Problema veo
- El usuario intenta empujar
- Desactualizado (mercurial no le permitirá presionar si su repositorio local está desactualizado), por lo que extrae y fusiona sus cambios locales
- El usuario intenta presionar nuevamente, pero mientras estaba fusionando, otra persona presionó, por lo que está desactualizado nuevamente
- Tire y fusione nuevamente
- Aún fuera de fecha
- Repetir
¿Suena familiar?
¿Es este un problema real con repositorios mercuriales muy grandes y populares? ¿Qué pasa dentro de una empresa cuando todos hacen su último empujón del día?
--close-branchal comprometerse - y mercurial ha nombrado ramas, no tiene que clonar a un nuevo directorio
hg branch myfeature; hg ci -m "Starting feature branch"; hg push --new-branch