Leggendo alcuni "Perché un DVCS è meglio" risponde a diverse domande su Programmers.SE tutti sembrano dire che, in generale, DVCS è meglio perché non si ha una gara di commit in grandi progetti, IE commit, out data di aggiornamento, commit, data non aggiornata, commit, non aggiornato, ecc.
Il DVCS limita questo concetto al concetto di spinta. Tuttavia, in progetti molto grandi non ci sarebbe una "corsa di spinta", specialmente alla fine della giornata? So che in Git questo è un po 'rimediato dalla costante ramificazione di tutto, ma in Mercurial non ti rammenti, crei una nuova testa.
Problema che vedo
- L'utente tenta di spingere
- Non aggiornato (mercurial non ti consente di spingere se il tuo repository locale non è aggiornato), quindi estrai e unisci le modifiche locali
- L'utente tenta di eseguire nuovamente il push, ma mentre si univano, un'altra persona ha fatto push, quindi non sono più aggiornati
- Apri e unisci di nuovo
- Ancora non aggiornato
- Ripeti
Suona familiare?
Questo è un problema reale con repository mercuriali molto grandi e popolari? Che ne dici di una società quando tutti fanno la loro ultima spinta del giorno?