Stiamo eseguendo il bootstrap di un nuovo team di dimensioni molto ridotte (ad esempio 2-5) la mia domanda è: quale tipo di controllo della versione funziona meglio per questo tipo di team, centralizzati o distribuiti.
Stiamo eseguendo il bootstrap di un nuovo team di dimensioni molto ridotte (ad esempio 2-5) la mia domanda è: quale tipo di controllo della versione funziona meglio per questo tipo di team, centralizzati o distribuiti.
Distribuito fino in fondo, non c'è davvero alcun punto per centralizzare più IMHO, specialmente se si parla di sviluppo del team.
Un altro voto per Mercurial, nessuna seccatura da configurare sotto windows e bitbucket.org ha repository gratuiti (che possono essere privati) con spazio illimitato.
Se hai intenzione di lavorare su un progetto open source, git e Github sembrano essere più adeguati / popolari. Tuttavia, se non ti sei avventurato in DVCS, ti consiglio di iniziare con Mercurial e questa fantastica guida .
quello che userete in modo coerente
[personalmente, mi piace Mercurial]
Probabilmente la risposta migliore è "qualunque cosa tu stia bene con". Io uso Git anche quando lavoro su cose personali. Sembra fare un buon lavoro di scaling sia verso l'alto che verso il basso e la mia esperienza limitata con Mercurial è pressappoco la stessa.
Penso che dovresti scegliere qualunque cosa ti trovi a tuo agio. In una piccola squadra, non avrete alberi di codice diversi (come il kernel Linux), quindi un repository centrale è OK. Ma puoi avere questa configurazione anche con VCS distribuito. Quindi vorrei andare con la popolarità e l'esperienza personale. I più popolari sono SVN, git e Mercurial. Dovresti decidere quali sono i migliori da utilizzare con il tuo team (esperienza, supporto degli strumenti nel tuo IDE scelto ecc.).
Dipende veramente dal fatto che i tuoi sviluppatori svilupperanno o meno un sacco di codice offline o no, ma solo per scegliere tra un repository distribuito o centralizzato, poiché questa è la prima cosa che dovresti decidere. Quindi, se decidi che un approccio centralizzato funziona meglio di SVN è tutto ciò di cui hai bisogno. D'altra parte se si va per un approccio distribuito piuttosto che per git, anche su windows è abbastanza buono visto che ora si ha git tartarugato (la stessa interfaccia che esiste anche per svn). Inoltre, non contare così tanto sul supporto IDE perché potresti avere una brutta sorpresa se lo utilizzi e potresti scoprire che i file che non devono essere commessi vengono commessi per tuo conto dall'IDE.
Chiedi alla tua squadra, se qualcuno vuole prendersene cura. È molto meglio avere un sistema stabile, e una persona responsabile, che un buon sistema quando nessuno se ne preoccupa, e nessuno in grado di ripristinarlo dal backup.
Se c'è una tale persona - saprà già cosa usare, quindi accetta la sua decisione. Altrimenti, prendi una soluzione ospitata. Sarebbe molto stupido provare GIT (uno dei migliori) se tutti gli sviluppatori non hanno mai toccato Shell / Linux.
Dipende anche dal numero di persone "non tecniche" che devono leggere / contribuire. Assicurati che possano usarlo e ci sono strumenti disponibili.
SVN è ampiamente supportato negli strumenti. La lavorazione degli utensili è la chiave; persone diverse avranno set di abilità differenti. Alcuni preferiranno la linea di comando, alcuni preferiranno gli strumenti basati su IDE, altri preferiranno gli strumenti grafici. Al momento, SVN sembra essere lo strumento più ampiamente supportato.
Altro che Mercurial o Git.
Penso che nelle piccole aziende ci siano argomenti per avere certe cose centralizzate. (Pensa ad esempio al backup offsite. Quando hai solo 2 persone che lavorano su un progetto e stanno alloggiando nello stesso edificio e c'è un incendio, decentralizzato a tutti e due i computer potrebbe non essere sufficiente.)
Tuttavia: avere una soluzione parzialmente centralizzata non ti limita a un sistema centralizzato. Puoi semplicemente inviare a un server esterno qualcosa di simile a git o mercurial.
Leggi altre domande sui tag version-control