Miglior sistema di controllo del codice sorgente per il team di sviluppo del Web occupato [chiuso]

1

Avendo avuto un certo numero di istanze di problemi di unione e altre difficoltà con un grande repository Subversion e un team di più di 10 sviluppatori, sto valutando se SVN sia lo strumento giusto e cos'altro da considerare? Il sistema principale gestito è una grande applicazione web PHP con cicli di rilascio in media di 2-3 settimane di distanza e 4 o più progetti simultanei in sviluppo attivo in qualsiasi momento.

La sovversione è il sistema giusto o dovremmo adottare Git, Mercurial o qualcos'altro?

    
posta Bob 16.06.2011 - 21:27
fonte

5 risposte

4

Subversion e CVS sono entrambi sistemi strongmente centralizzati e, in quanto tali, non sono adatti a team che non lo sono.

GIT è stato programmato specificamente per aggirare questo problema. È per natura decentralizzato. Ora, questo potrebbe causare il suo set di problemi, ma potrebbe valere la pena provare se Subversion ti sta deludendo.

    
risposta data 16.06.2011 - 21:44
fonte
3

I tuoi sviluppatori generalmente lavorano in luoghi in cui avranno una buona connessione di rete con i tuoi server? Se è così, allora SVN potrebbe essere adatto. Altrimenti, considera un VCS distribuito come git o Mercurial (poiché è più facile lavorare con quando non si ha sempre una connessione con un server).

I tuoi sviluppatori utilizzano principalmente macchine Windows? Quindi considera SVN o Mercurial (git non supporta Windows così come SVN e Mercurial).

    
risposta data 16.06.2011 - 21:51
fonte
2

Per i team di grandi dimensioni, il controllo della versione distribuito è sicuramente il modo migliore per andare. I più popolari sono Git e Mercurial. Sono abbastanza simili sotto molti aspetti. I comandi e il flusso di lavoro sono quasi identici. L'unica differenza che ho riscontrato è che Mercurial è leggermente più user-friendly (beh, almeno, c'è in genere meno digitazioni coinvolte), ma Git è leggermente più veloce (dato che è scritto principalmente in C mentre Mercurial è scritto principalmente in Python) .

    
risposta data 17.06.2011 - 03:12
fonte
1

Attualmente sto lavorando in un ambiente molto simile a quello che descrivi @Bob. (Tranne Java invece di PHP).

Al momento abbiamo un paio di succursali di Subversion in esecuzione e io uso git localmente (poiché gli altri sviluppatori del team non usano git) per gestire la fusione tra i rami.

Suggerirei just give it a try in un ambiente sandboxed, puoi mantenere il tuo repository centrale di Subversion ma hai un repository git locale e dcommit le tue modifiche locali fino a subversion.

Vedi qui per un esempio di utilizzo

    
risposta data 17.06.2011 - 01:16
fonte
0

È gratuito un problema o lo consideri commerciale? BitKeeper è probabilmente il miglior sistema in circolazione, anche se ha un prezzo in questo modo. Non lasciatevi ingannare dal loro sito web straight-out-the-90, il loro prodotto è di prim'ordine.

Quando ho usato Bitkeeper per l'ultima volta, le unioni sono state letteralmente un non-problema. Lavorare con le filiali è parte integrante dell'uso di BitKeeper (tanto che è possibile creare facilmente diversi giorni al giorno), quindi la fusione delle modifiche era solo una parte naturale del flusso di sviluppo. Ed è sempre che ha ottenuto l'unione automaticamente. Raramente si doveva fare un codice di fusione a mano.

Anche il loro servizio clienti è abbastanza buono, se chiami parlerai quasi certamente con uno degli sviluppatori che ha scritto e / o progettato il codice che stai chiedendo.

    
risposta data 17.06.2011 - 01:56
fonte

Leggi altre domande sui tag