Dopo aver letto Sono un geek di Subversion, perché dovrei considerare o non considerare Mercurial o Git o qualsiasi altro DVCS .
Ho una domanda di follow up correlata. Leggo questa domanda e leggo i link e i video consigliati e vedo i benefici, ma non vedo le persone di mindshift di cui stiamo parlando.
Il nostro team è composto da 8-10 sviluppatori che lavorano su una grande base di codice composta da 60 progetti. Usiamo Subversion e abbiamo un trunk principale. Quando uno sviluppatore avvia un nuovo caso Fogbugz, crea un ramo svn, fa il lavoro sul ramo e quando ha finito si uniscono al tronco. Occasionalmente possono rimanere sul ramo per un periodo di tempo prolungato e unire il tronco al ramo per raccogliere le modifiche.
Quando ho visto Linus parlare di persone che creano un ramo e non lo fanno mai più, non siamo affatto noi. Creiamo probabilmente 50-100 filiali alla settimana senza problemi. La più grande sfida è la fusione, ma ci siamo anche comportati bene. Tendo a fondermi con il caso fogbugz & check-in piuttosto che l'intera radice del ramo.
Non lavoriamo mai in remoto e non facciamo mai rami di rami. Se sei l'unico a lavorare in quella sezione della base di codice, allora l'unione con il tronco procede senza intoppi. Se qualcun altro ha modificato la stessa sezione di codice, l'unione può diventare disordinata e potrebbe essere necessario un intervento chirurgico. I conflitti sono conflitti, non vedo come qualsiasi sistema possa farlo bene la maggior parte delle volte a meno che non sia abbastanza intelligente da capire il codice.
Dopo aver creato un ramo, il seguente checkout dei file 60k + richiede un po 'di tempo, ma questo sarebbe un problema con qualsiasi sistema di controllo del codice sorgente che useremmo.
C'è qualche vantaggio di qualsiasi DVCS che non stiamo vedendo sarebbe di grande aiuto per noi?