La lettura di alcuni "Perché un DVCS è migliore" risponde a diverse domande sui programmatori. Sembrano tutti dire che in generale, DVCS è migliore poiché non si ha una gara di commit in grandi progetti, IE commit, non aggiornati quindi aggiornamento, commit, nuovo non aggiornato, commit, ancora obsoleto, ecc.
DVCS limita questo con il concetto di push. Tuttavia, in progetti molto grandi non ci sarebbe una "gara di spinta", soprattutto alla fine della giornata? So che in Git questo è in qualche modo compensato dalla costante ramificazione di tutto, ma in Mercurial non si ramifica, si crea una nuova testa.
Problema che vedo
- L'utente tenta di spingere
- Scaduto (mercurial non ti consentirà di spingere se il tuo repository locale non è aggiornato), quindi tiri e unisci le modifiche locali
- L'utente tenta di spingere di nuovo, ma mentre stava unendo qualcun altro ha spinto, quindi non è più aggiornato
- Tirare e unire nuovamente
- Ancora obsoleto
- Ripetere
Suona familiare?
È un problema reale con repository mercuriali molto grandi e popolari? Che dire all'interno di un'azienda quando tutti fanno la loro ultima spinta della giornata?
--close-branch
quando commetti - e mercurial ha nomi di rami, non devi clonare in una nuova directory
hg branch myfeature; hg ci -m "Starting feature branch"; hg push --new-branch