2010-07-11 13 views
5

Sembra essere piuttosto difficile trovare buoni riferimenti sui pro e contro di questi sistemi di controllo della versione.Sei a conoscenza di una buona carta pro/con sul sistema di controllo versione (git/mercurial/svn/cvs)?

Se qualcuno può fare un breve e accurato articolo su di esso, rispecchiarlo e postarlo qui, penso che molta gente sarebbe meno confusa.

Quale sistema di controllo versione dovrei usare? Penso che dipenda dal progetto e dal numero di persone che ci lavorano. Tuttavia ci sono alcuni fatti comunemente accettati, ad esempio: Git è il più veloce, CVS è stabile e testato, SVN è semplice e Mercurial sembra più adatto a Windows.

Inoltre, il documento dovrebbe presentare evidenze, link a benchmark e spiegazione per ogni affermazione.

Ho scritto su stackoverflow perché la maggior parte dei lettori qui dovrebbe essere programmatori esperti e sapere dove chiedere di ottenere contributi adeguati O anche scrivere la carta (sarebbe fantastico).

Nota: questa domanda non riguarda i meriti relativi di uno strumento rispetto all'altro (ci sono molti post su questi argomenti), ma più sui criteri oggettivi che possono essere usati per differenziarli e usarli per sceglierne uno per il progetto .

+4

SO non è davvero una conferenza tecnica; non facciamo "carte", facciamo risposte. – Amber

+0

Ho solo cercato di "attenuare" l'aspetto controverso della tua domanda - legittima. Se pensi di non averlo fatto e di averlo modificato troppo, ti preghiamo di tornare alla versione precedente o di modificarlo di nuovo. – VonC

+0

Ambra: questo è vero, ho abusato di SO, perdonami. VonC: Beh, hai modificato un dettaglio ma hai commesso un errore, non stavo implicitamente lodando Windows, era solo un brutto battito di ciglia da un utente BSD a Linus. Tuttavia non mi dispiace, la tua versione modificata è buona e più appropriata. Grazie. – benjamin

risposta

3

Il DVCSAnalysis di Google è un buon inizio.
(Beh, Scott Chacon, Git champion e one of the guys behind GitHub, in disaccordo nei commenti:

Questa analisi non è aggiornato, ed era in realtà molto fuori data in cui è stato pubblicato Vedere il mio comments on ycombinator about it
. La mia opinione è che Git e Mercurial siano superiori in quasi tutti i modi a SVN/CVS - Penso che quasi tutti gli sviluppatori che hanno usato entrambi i sistemi in modo significativo sarebbero d'accordo

Per quanto riguarda Git/Hg, sono in gran parte comparabili e o sarebbe una buona scelta, anche se Git sembra avere un po 'di un segno e condividere il vantaggio, FWIW.

Qualche fonte/riferimento su tale quota di mercato, Scott?
Forse il numero di repository/utenti dichiarati nei siti di collaborazione di codifica sociale?

)

Accanto a questo, ho scritto alcuni post generali sul tema:

Queste risposte SO potrebbero non essere "specifiche dello strumento" sufficienti, ma almeno possono indicarti le caratteristiche rilevanti fornite da ciascuna classe di tali sistemi di Versioning.

Sul fronte di riferimento, si dispone dello interesting question from Jakub Narębski sul benchmarking di rete, nonché di his answer for Git.
Potrebbe essere troppo "Git-centric", ma può anche essere utilizzato per porre le domande giuste quando si decide quale tipo di strumento di controllo delle versioni si desidera per il proprio progetto.

+0

DVCSAnalysis è il tipo di carta che stavo cercando, analisi molto buona da Google. – benjamin

+0

Questa analisi non è aggiornata ed era in effetti molto obsoleta al momento della pubblicazione. Vedi i miei commenti su questo qui: http://news.ycombinator.com/item?id=577976 La mia opinione è che Git e Mercurial sono superiori in quasi tutti i modi a SVN/CVS - Penso che quasi tutti gli sviluppatori che hanno usato entrambi i sistemi in qualsiasi modo significativo sarebbero d'accordo. Per quanto riguarda Git/Hg, sono in gran parte comparabili e sarebbe una buona scelta, anche se Git sembra avere un po 'di vantaggio sulla quota di mercato, FWIW. –

+0

@Scott, grazie per il vostro feedback. L'ho integrato nella mia risposta. ** Ma **: 1/per quanto riguarda Windows, i suoi [supporti] (http://code.google.com/p/msysgit/updates/list) è ancora [traballante nella migliore delle ipotesi, vedi questa risposta SO] (http://stackoverflow.com/questions/1704565#1704687). 2/E il git checkout file vs. branch fa ancora un sacco di gente (vedi [questa risposta SO] (http://stackoverflow.com/questions/2961240#2961348)) – VonC

4

Quando si tratta di "Vcs è giusto per me" è una domanda fortemente soggettiva che dipende molto dai parametri delle esigenze del flusso di lavoro, dalle esigenze del progetto e dallo stile generale del gruppo.

Se siete alla ricerca di dettagli su come le caratteristiche empiriche di ogni VCS confrontare, date un'occhiata ai seguenti classifiche:

http://en.wikipedia.org/wiki/Comparison_of_revision_control_software

Davvero, però, al di là di tutto ciò che sarà un opinione personale - anche se fai test empirici, il meglio che otterrai è un insieme di confronti diversi che indicano che un VCS eccelle in una data area e un'altra in una diversa. Come giudichi quelle aree in termini di importanza dipende da te.

+0

Buon link generale. +1 – VonC

+0

Questo è un buon punto di partenza. – benjamin

0

Se volete conoscere Git, Linus Torvalds TechTalk a Google è molto buona 1. È (ovviamente) molto utile e contro qualsiasi altra cosa, ma è divertente da guardare.

Problemi correlati