2009-05-21 13 views

risposta

3

Direi di no perché gli strumenti della GUI per GIT sono davvero primitivi a questo punto.

Svn ha VisualSvn, TortoiseSvn che rende l'integrazione di Visual Studio e Windows Explorer davvero fluida. IMO la "facilità d'uso" degli strumenti SVN supera di gran lunga il controllo del codice sorgente distribuito e le migliori funzionalità di fusione fornite da GIT.

Questo perché non ho alcuna aspettativa di lavorare su un progetto di controllo del codice sorgente senza avere una connessione al repository di controllo del codice sorgente. Se passi molto tempo su un aereo o su una barca (shortay!) Darei una prova a GIT e vedere se gli strumenti da riga di comando sono sufficienti.

+0

+1 per riferimento alla programmazione dell'imbarcazione! – Tim

9

Ho spostato tutti i miei lavori da SVN a Git per un negozio di sviluppo. TortoiseGit funziona abbastanza bene su Windows e lo strumento gitk mi rende semplicemente una persona felice.

Dovrai ancora abituarti al git in modalità shell su Windows per alcune attività, ma per la maggior parte del tuo flusso di lavoro giornaliero, Git GUI, gitk e TortoiseSVN ti porteranno lì. La qualità del sistema di branching/merging e le storie private locali per battere rapidamente qualcosa sono molto, molto utili per me. Mi piace anche saltare i numeri di versione ed essere in grado di inviare materiale "pulito" al repository centrale dalle mie filiali personali.

12

Bene, questo dipende molto da come funzionano i vostri sviluppatori e dal fatto che siano felici o meno con il setup di Subversion così com'è. Stai facendo un sacco di fusioni e giurando sul supporto per l'unione errata di Subversions, quindi Git ti renderà probabilmente la vita più facile.

Ciò che mi infastidisce è che molte persone sembrano pensare che il vantaggio principale di Git e di altri DVCS sia la possibilità di sviluppare offline. Questo è solo un piccolo effetto collaterale della reale funzionalità di avere l'intero repository sul tuo computer locale in modo che i rami, l'unione, ecc. Possano essere eseguiti senza contattare il server. In caso di Git puoi passare da una filiale all'altra in pochi secondi, quando in Subversion ci vogliono diversi minuti.

Se i tuoi sviluppatori sono abituati e desiderano imparare cose nuove, la conversione in Git probabilmente non sarà un problema. D'altra parte, se hai sviluppatori che amano il modo in cui le cose sono e non le piacciono quando il loro ambiente di lavoro cambia, allora probabilmente starai meglio nel mondo di Subversion.

+0

Anche se Subversion up from 1.5 supporta il merge tracking e ha un miglior supporto per le unioni (ma sia il server che il client devono essere 1.5 o successivi). –

+3

Sì, ne sono a conoscenza. Ma il modello di fusione di Subversion è ancora intrinsecamente e profondamente imperfetto e le persone si stanno ancora strappando i capelli quando si uniscono. Non si stanno uccidendo più. – JesperE

4

Ciò che mi ha fatto allontanare da SVN è stata la sua lentezza su Internet. Quando il repository è a soli 100ms di distanza, le operazioni semplici come la memorizzazione e la visualizzazione della cronologia dei log richiedono un'eternità (decine di secondi). Con Git prendono le frazioni di un secondo.

Anche il lavoro offline è eccezionale. Un giorno, quando la rete della mia università non funzionava, potevo ancora impegnarmi e lavorare senza interruzioni sul mio portatile. Posso inviare gli aggiornamenti al server centrale qualche tempo dopo, quando la funzione su cui stavo lavorando è completa e ho accesso a Internet.

Per i progetti open source, DVCS è un must, perché consente ai nuovi sviluppatori di iniziare subito l'hacking, senza la necessità di dare loro accesso in scrittura al repository centrale.Abbassa la voce per i nuovi sviluppatori di aderire al progetto.

Ho scritto di recente a blog post sulle mie esperienze sulla conversione di repository SVN in Git. Potrebbe aiutarti, se decidi di trasferirti da SVN. Ricorda inoltre che con git-svn i singoli sviluppatori possono utilizzare Git sulla loro macchina locale mentre il repository centrale è un repository SVN.