2009-04-16 8 views
6

Sono un ingegnere di rilascio per un team di 35 programmatori. Stiamo lavorando su PHP, Java, C# e SQL. Attualmente utilizziamo Subversion, che ha funzionato bene per circa un anno. Stiamo attraversando una fase in cui i conflitti stanno diventando sempre più comuni. Le nostre impronte di applicazioni stanno crescendo, quindi le prestazioni stanno diventando un problema per i checkout e le commit.Esplorazione di nuovi sistemi di controllo versione. Il mio più grande bisogno: fusione affidabile

mi chiedo che cosa sistemi di controllo versione commerciale o FOSS e persone del software client in grado di consigliare che si adattano il mio profilo: - repo centralizzata - Semplice fusione - esportazioni veloci, fonde, casse - Risoluzione dei conflitti

Grazie per il tuo aiuto!

;) .randy

- Aggiunto 2009-04-16 @ 06:21 PST

Maggiori informazioni: la nostra impronta di pronti contro termine è ~ 6 GB. Abbiamo esaminato Git e Bazaar. Grandi caratteristiche e motivi per usarli. Vogliamo un repo centralizzato.

+0

Penso che il requisito per un repository centrale possa limitare molte buone scelte. Potresti rilassare la tua richiesta, diciamo, di avere sempre una copia di lavoro "produzione" o "rilascio" che è considerata canonica. –

+0

Completata la mia risposta con commenti sulla funzione di unione tra Subversion e altri strumenti – VonC

risposta

8

Un equivoco comune è che i sistemi di controllo delle versioni distribuiti come git o mercurial non sono utili per i repository centralizzati. Detto questo ti raccomando di guardare git se non l'hai già fatto.

2

Perforce è il mio preferito.

+0

+1 d'accordo, aveva VSS prima e Perforce è molto meglio. –

+1

Non è difficile essere molto meglio di VSS, infatti sarebbe difficile essere peggio. –

+0

Cosa rende Perforce migliore di Subversion? –

2

Se è vero che Git è una buona scelta, non dimenticate che un "crescente domanda di impronta" comporta altri problemi si dovrà affrontare, non importa quale SCM si finisce per utilizzare.

Vale a dire:

  • Application Architecture per dividere l'applicazione in più gestibile e indipendenti (gli uni dagli altri) "moduli" (o componenti)
  • Merge workflow: il tuo SCM necessità di affrontare 3-way merge, mentre avoiding sideway-merges. Questo è particolarmente vero in fase di manutenzione, quando si ha sia una versione in produzione da mantenere, sia un nuovo sviluppo per la prossima versione da realizzare.
  • Delivery storage al fine di interrogare facilmente le vostre consegne in un ambiente di test, gli ambienti di omologazione, ambiente di produzione ...

Per quanto riguarda la funzione di unione, Perforce o Git sono meglio di Subversion, perché ti permettono per unire qualsiasi sottostruttura che si desidera, mentre si memorizzano le informazioni di unione e con molte strategie di unione (le nostre, le loro, ...).

Anche nella sua ultima versione 1.6, Subversion supporta solo affidabilemerges from the root directory of a branch (è possibile unire sottostrutture, ma il log non sarà preciso per le unioni di sotto-albero di fuori quelli che avete attualmente ritirati)

0

Siamo stati felici con Starteam da borland. L'operazione di check-in/checkout è veloce anche da sistemi remoti e offre anche visualizzazioni e stati di promozione diversi.

0

In qualsiasi modo si va, assicuratevi di aggiungere FishEye ad esso .. aiuta con managing your code la complessità cresce ..

attualmente supporta SVN, Perforce e CVS.

0

Check:

  • Accurev
  • Plastic SCM. Guarda il suo albero 3D ed esploratore di rami ed esplora i link di unione lì
1

Bazaar può essere utilizzato in molti diversi tipi di flussi di lavoro. Vedi questo articolo sull'utilizzo in un centralized workflow.

Problemi correlati