Domanda

Sto aiutando a configurare SCM per un nuovo programma e al momento stiamo decidendo un VCS.

I principali contendenti a questo punto sono SVN, ClearCase, SVN + DVCS e solo un DVCS.

Al momento, il team è incline verso SVN o SVN + DVCS. Vogliamo evitare le spese e i costi di amministrazione di ClearCase, ma vogliamo le opzioni di flusso di lavoro e controllo delle versioni che offre. Ho proposto anche l'uso di un DVCS e l'idea è stata presa in considerazione.

Per il DVCS, stiamo prendendo in considerazione Mercurial, Bazaar e Git. Il team si sente a proprio agio con SVN, ma non credo che offrirà la versatilità necessaria, motivo per cui stiamo guardando il DVCS in cima all'opzione SVN.

Qualcuno ha qualche consiglio (ad es. strumenti, processi esistenti) per avviare una simile configurazione?

Le preoccupazioni includono:

  • Facilità di installazione
  • Impostazione dei flussi di lavoro (sviluppo di < - > recensioni di codice - > test - > trunk, quindi trunk - > ramo del test di integrazione - gt; release con correzioni di bug inserite nei rami di rilascio), controllo (trovato un bug, quando è stato introdotto)
  • Generazione di metriche
  • Curva di apprendimento ragionevole per gli sviluppatori abituati a ClearCase.
  • Sviluppo di Windows
  • Integrazione del tracker dei problemi (probabilmente sarà Redmine, anche se non è impostato su pietra)
È stato utile?

Soluzione

Come amministratore di ClearCase, escluderei questo strumento a meno che tu non abbia un flusso di lavoro di unione complesso.

Il flusso di lavoro menzionato implica la possibilità di ramificare, correggere e quindi ricollegarsi facilmente , che non dovrebbe essere a favore di SVN.

La trappola più grande quando si è abituati a ClearCase (specialmente ClearCase non UCM) è la " composizione " di una specifica di configurazione.
Se scegli un DVCS (Mercurial, Bazaar - o Git poiché funziona davvero bene su Windows ), non essere in grado di ottenere lo stesso " effetto ereditario " - (quando selezioni versioni diverse con regole di selezione successive diverse - : come detto nella risposta:

  

In un VCS puramente centrale, puoi definire il tuo spazio di lavoro (in ClearCase, il tuo " visualizza " o istantanea o dinamica) con qualunque regola tu voglia.
  Ciò non sarebbe pratico in un DVCS (come in & Quot; Distribuito & Quot;): quando si crea un ramo con esso, è necessario farlo con un punto di partenza e un contenuto chiaramente definiti e facilmente replicabili ad altri repository.

Se si utilizza ClearCase UCM, ciò significa identificare insiemi di file coerenti, che possono essere raggiunti solo attraverso, ad esempio, Git submodules .
La complessità è maggiore con quei DVCS, poiché non registrano le dipendenze tra i moduli (o & Quot; set di file & Quot;) come fa ClearCase UCM.

Quindi, per ricapitolare:

  • Facilità di installazione: tutti i DVCS citati sono facili da configurare. Ciò che deve essere preso in considerazione è l'amministrazione in termini di accesso degli utenti.
  • Impostazione di flussi di lavoro: un DVCS supporta qualsiasi tipo di flusso di lavoro, anche centralizzato, o pubblico-privato o ... Per quanto riguarda la ricerca di un bug, supportano tutti un tipo di bisect process .
  • Generazione di metriche: se con ciò intendi " metriche sul codice gestito " ;, tutti supportano un sistema di log completo in grado di visualizzare molte informazioni su ciò che è cambiato.
    Ma in termini di & Quot; metriche sullo strumento & Quot; (velocità di un processo o spazio occupato dai dati), gli strumenti DVCS citati sono considerati molto più veloci di SVN (vedi qui come esempio ).
  • Curva di apprendimento ragionevole per gli sviluppatori abituati a ClearCase: la GUI può essere un fattore per alleviare la curva di apprendimento, ma un DVCS è molto diverso da ClearCase, poiché questo " concetti chiave " la risposta illustra.
  • Sviluppo di Windows: funzionano tutti bene sulla piattaforma Windows, con forse un leggero vantaggio (migliore integrazione) con Mercurial o Bazaar.
  • Integrazione del tracker dei problemi (probabilmente sarà Redmine, anche se non è impostato su pietra): Redmine ora supporta la maggior parte di essi (e non solo SVN come all'inizio)

Altri suggerimenti

Qual è il problema con Git? Sto usando Git su Windows in questo momento. Funziona benissimo. Git Extensions è molto utile se desideri l'integrazione con Explorer, se questo è il tuo problema.

Non ho esperienza con Clearcase, ma spero che ciò che segue possa aiutare alcuni. La tua domanda lascia fuori diverse informazioni che prenderei in considerazione prima di decidere. Prima di quanto codice sorgente avrai? Mentre SVN è buono su progetti medio-grandi per progetti veramente grandi come il kernel Linux Git fornirà prestazioni molto migliori. Secondo quale IDE stai usando? Mentre Mercurial, Git e SVN hanno tutti plug-in Visual Studio ed eclissi di qualità molto elevata. Secondo l'articolo di Wikipedia su Redmine, qualsiasi sistema SCM che stai guardando si integrerà. Il seguente blog può essere utile per te dal momento in cui è stato acquistato acquistare un ragazzo che scrive un sistema SCM per vivere. http://www.ericsink.com/

Se potessi eliminare il requisito che deve funzionare su Windows, ti consiglio di consultare Aegis .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top