2011-05-03 47 views

risposta

21

SCM significa in genere Software Configuration Management, che includono CMRM (Gestione modifiche fino a Gestione rilasci), incluso il controllo delle versioni.

SVN è solo un VCS: Version Control Tool.

Quindi uno è molto più completo e copre più completamente il ciclo di vita dello sviluppo, pur essendo generico: Team Fundation Server o RTC - Rational Team Concert - sono entrambi esempi di SCM.

8

SCM è un termine generico che in realtà non significa molto di nulla. Ho sentito dire "Gestione configurazione software", "Gestione modifiche software" e "Gestione codice sorgente", e probabilmente ce ne sono altri. È fondamentalmente marketing parlare per quanto posso dire.

Se lo si visualizza come qualcosa di simile alla seconda frase, quindi SVN (abbreviazione di Subversion), git e Mercurial sono tutti tipi particolari di sistemi SCM. Git e Mercurial sono approssimativamente equivalenti. Ci sono lievi differenze, ma le preferenze personali sono davvero la maggior parte di ciò che conta. Entrambi sono quelli che vengono chiamati sistemi di controllo di revisione distribuiti, il che significa che non si deve fare affidamento su nessuna posizione centrale. Ogni persona che li utilizza può lavorare in modo indipendente e sincronizzare tutto in modo più o meno indipendente.

Subversion è centralizzato. Mira a risolvere lo stesso tipo di problemi, ma lo fa forzando tutte le attività a passare attraverso una posizione che tutti usano. Ciò rende molte cose più facili da gestire, ma al costo di una grande quantità di flessibilità. Ancora una volta, la preferenza personale determina quale preferiresti.

+0

È piuttosto bizzarro vedere SVN essere descritto in termini di come "semplifica le cose al costo della flessibilità" rispetto a git/hg - i sistemi centralizzati sono molto, molto più vecchi, quindi sono quelli distribuiti a rendere le cose diverse (in gran parte migliore) negli ultimi 5 anni. –

+1

Sono d'accordo con te - io uso git personalmente. Non intendevo implicare alcun tipo di cronologia lì. Penso che i sistemi distribuiti abbiano migliorato notevolmente le cose, ma penso sia anche vero che richiedono più pensiero per avere ragione. SVN rende facile fare le cose nel modo giusto; è solo che rispetto a git o hg, il modo giusto in svn non è buono come il modo giusto in git/hg. Non sono sicuro se quell'ultima frase abbia più senso sulla pagina come ha fatto nella mia testa ... – deong

9

SCM è Software Configuration Management e SVN è uno strumento di controllo versione, che è un sottoinsieme di SCM. VCS sono anche chiamati Revision Control e Git, Mercurial sono anche strumenti VCS (VCS distribuiti per essere più specifici.)

SVN, Git, Mercurial, ecc. Sono strumenti per il controllo di revisione, uno dei processi in SCM. SCM include anche la gestione della build, il rilevamento dei difetti, ecc.

4

Ho provato sia Git che Mercurial (e attualmente uso Mercurial). Da quello che ho visto Git sembra essere un po 'più veloce e forse più versatile, ma a un costo in termini di curva di apprendimento. Quando li ho provati entrambi all'inizio, non ho avuto altri collaboratori a cui affidarmi per informazioni e ho trovato la curva di apprendimento di Git molto più ripida di quella di Mercurial. Inoltre ho trovato che Mercurial è molto più facile da usare da Windows (che è la mia piattaforma di sviluppo principale).

Mercurial ha il supporto per Git e probabilmente è vero anche il contrario, quindi probabilmente potresti provarne uno e passare in seguito se ne hai trovato la necessità.

2

SVN (Subversion) è uno strumento che fornisce funzionalità di versione. Gli sviluppatori hanno utilizzato questo strumento per controllare i loro codici. Usando questo possiamo rintracciare le modifiche apportate ai file/codici durante il processo di sviluppo del software.

Gestione configurazione software è una pratica utilizzata per rintracciare e controllare i cambiamenti nello sviluppo del software. Comprende tutti i processi necessari per creare, pacchettizzare e distribuire software.