Ci sono vantaggi nell'usare un DVCS per uno sviluppatore solista?


19

In questo momento, uso visual svn sul mio server e ho ankhsvn / tortoise sulla mia macchina personale. Funziona abbastanza bene e non devo cambiare, ma se riesco a vedere alcuni vantaggi dell'utilizzo di un DVCS, allora potrei provarlo.

Tuttavia, se non ha senso o differenza usarlo senza altre persone, non mi preoccuperò.

Quindi, chiedo, ci sono dei vantaggi nell'usare un DVCS quando sei l'unico sviluppatore?


1
Vedi post simili su stackoverflow: stackoverflow.com/questions/179161/… . Tutto ciò che devi sapere è riassunto bene lì.
ysolik,

Quindi la mia domanda è stata chiusa come un duplicato esatto come questo. Purtroppo questa domanda non risponde alla mia. Ragazzi, spingete e tirate dal master quando sei uno sviluppatore solista, o ti ramifichi e ti unisci? Sto solo cercando di vedere qual è il modo giusto di usare un DVCS quando sei da solo
Chase Florell

1
i backup sono essenzialmente solo un altro clone. Questo potrebbe essere molto importante un giorno. Anche gli strumenti git sono anni luce prima di svn.

Lavori mai su un laptop, lontano dal tuo server?
JBR Wilkinson,

Risposte:


19

Sì! Penso che il più grande vantaggio sia il migliore supporto di branching + fusione offerto da molti DVCS. Ramificarsi e fondersi è una specie di dolore nel culo in SVN; è abbastanza fastidioso che non valga la pena di creare piccoli rami di breve durata per aggiunte rapide di funzionalità, correzioni di bug o sperimentazione, ma la fusione è anche abbastanza fastidioso da creare anche rami di lunga durata. D'altra parte, ramificare e fondere è un gioco da ragazzi in Git, tanto che creo un ramo (locale) per quasi tutte le correzioni di bug o funzionalità su cui lavoro.

Penso che gli strumenti offerti da Git per visualizzare repository, log di grepping, ecc., Siano molto meglio che in SVN (anche se è più una cosa di Git che specifica di un DVCS).

Un DVCS inoltre non richiede un server centrale; quando si utilizza SVN come sviluppatore, è necessario creare un repository locale da inserire, che non è un requisito con Git, poiché ogni repository contiene la cronologia completa. Come corollario, l'archiviazione di un repository è solo una questione di zippare il progetto: non esiste un "database centrale" per il backup.

Ho iniziato a usare Git quasi quattro anni fa, dopo aver usato SVN per un po ', e non ho guardato indietro.



4
Si ritiene che i DVCS non facilitino la fusione, ma che gli utenti DVCS siano più abituati a eseguire le fusioni. Ciò rende più semplice l'apparizione soggettiva delle fusioni. Naturalmente è la visione soggettiva che conta.
Richard,

3
DVCS non eguaglia esclusivamente git
Murph

6
@Richard Ma è sbagliato, gli strumenti centralizzati tendono ad avere una storia lineare che non supporta bene le fusioni complesse.
alternativa il

2
@Murph: questo è vero, ma io uso Git, quindi l'ho usato nel mio esempio.
mipadi,

7

Uso un DVCS molto per le mie cose personali. (Sono uno di quei ragazzi che a $ HOME in git .) Ci sono diversi vantaggi:

  • Rende davvero semplice la replica tra il mio laptop e desktop e computer di laboratorio . Anche se questo era vero anche per SVN ...
  • Posso impegnarmi sul laptop anche quando non ho accesso a Internet.
  • I backup sono semplici come a git pull.
  • Posso utilizzare git citoolper suddividere molte modifiche in commit di dimensioni logiche, anche se ho apportato molte modifiche non correlate prima di decidere di eseguire il commit. Non sono a conoscenza di uno strumento per farlo in Subversion.
  • Quando devo patchare un progetto open source, è più facile mantenere le cose organizzate creando un nuovo repository git nella directory del progetto piuttosto che creare una seconda copia di qualsiasi albero dei sorgenti che sto patch. (Non puoi farlo facilmente con Subversion perché hai bisogno di un repository separato da qualche altra parte sul tuo hard disk.)
  • Uso le semplici funzioni di diramazione per controllare le revisioni ottenute da altre persone. Ad esempio, quando modifico un documento della conferenza con il mio consulente, anche se non ha accesso al repository, posso inviargli una copia del documento e controllare le sue revisioni in un ramo in base alla versione che ho inviato lui, e poi usa git mergeper unire le sue revisioni con qualsiasi cosa che abbia fatto nel frattempo.

Git mi ha abituato a pensare a tutti i miei cambiamenti in blocchi logici, molto più di quanto Subversion abbia mai fatto.


(o git fetch per un mirror)

5

Mia madre spegne il modem quando è troppo tardi per dormire. DVCS mi consente di continuare a lavorare con VCS dopo che il modem è spento.


1
Lo definirei come "essere in grado di lavorare da un aereo" o "essere in grado di funzionare quando bitbucket.com scende" ma +1 per coprire il caso offline.
Wyatt Barnett,

Anche luoghi all'aperto senza rete 3G.
Linquize

3

Bene, la risposta predefinita sarebbe "Se (qualunque cosa tu stia usando ora) funziona per te, perché dovresti cambiare?".

Ma sì, anche se non c'è motivo di cambiare, trovo che usare DVCS sia un po 'più semplice dei "vecchi modelli". Quanto segue vale per Mercurial , che uso di più, quindi il tuo chilometraggio può variare, a seconda del sistema che intendi utilizzare.

  • davvero facile da usare - ho capito tutti i comandi di cui ho bisogno in circa un'ora
  • tutto è locale (non è necessario che il server remoto sia online)
  • diramazione / fusione molto facili: non ci pensi più nemmeno a queste cose
  • clonazione semplice (anche, un tipo di ramificazione) - e in generale un'interfaccia molto più user friendly (l'ho trovata più divertente di quella di git su windows; anche alcuni concetti sono più semplici; cioè non è necessario pensare dalla mia parte, portando quindi a meno complicazioni con VS e più lavoro svolto)
  • funziona bene con svn

Porta di salto verso un'introduzione a Mercurial e un blog (bei colori ;-) con consigli utili .


Hmm, CVS lavorava per noi, ma in nessun posto vicino e sovversione quando ci siamo trasferiti su di esso. I nuovi giocattoli ti offrono nuove funzionalità - quindi proprio per questo motivo sto esaminando se Mercurial potrebbe ora essere un'opzione migliore (soprattutto quando uso FogBugz) e anche il potenziale di veridicità ...
Murph

3
Passare da SVN a Mercurial è stata una rivelazione per me. È stato ispirato dal meraviglioso hginit.com di Joel e non ho mai guardato indietro.
Adam Crossland,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.