È una buona idea disporre di una sorta di archivio centrale, perché consente di condividere il codice, ma ha anche un ramo da cui è possibile generare direttamente le build/esportare le proprie istantanee. Quel server probabilmente avrà più di un ramo, uno dei quali è pensato come un ramo 'tronco'. Tutte le versioni precedenti avranno una propria filiale e, a seconda della gerarchia della tua squadra (cioè se sei diviso in gruppi con ciascun gruppo che lavora su un aspetto dell'applicazione), allora potrebbero esserci filiali di team o di funzioni, anche se non Lavorare in quel modo non è necessario.
Ovviamente, poiché è distribuito, ogni sviluppatore avrà anche il proprio repository locale, per rendere le cose belle e veloci. Oppure possono avere più repository, anche. Ad esempio, uno sviluppatore a cui piace lavorare durante il pendolarismo può avere un repository sulla sua stazione di lavoro e un altro sul suo laptop, con le diramazioni sul suo laptop che vengono "ritirate" da quelle sulla sua workstation. Dipende da lui. Immagino che la parte "distribuita" rende questo tipo di cose molto più semplice, perché puoi commettere e persino diramarti mentre sei lontano dalla rete.
Se si passa da un VCS non distribuito, è possibile passare direttamente allo stesso modello di prima, poiché un DVCS è abbastanza flessibile da funzionare allo stesso modo. Altrimenti, puoi iniziare con un singolo repository centrale con poche diramazioni, ed è sempre banalmente facile creare più repository e filiali in seguito.
Un'ultima cosa è che hai ancora bisogno di backup. Il fatto che vari sviluppatori abbiano ciascuno copie della stessa cosa aggiunge ridondanza, ma non è il invece dei backup.
Il DVCS che uso regolarmente è Bazaar. Ho anche provato Mercurial.