Controllo della versione per sviluppatori indipendenti?


60

Pensi che valga la pena usare il controllo versione se sei uno sviluppatore indipendente e, in tal caso, perché? Conservi il repository sul tuo computer o altrove, dove può fungere da backup?


54
Mi piacerebbe vedere un farmacista chiedere: "Devo conservare i farmaci in modo organizzato o semplicemente buttarli tutti in un cassetto? Ne vale la pena?"
Erik,

23
Immagina di lavorare duramente per una settimana di seguito creando questo fantastico software. Quindi cancellalo. Come vorresti sentirti? Non è solo memoria. Quando qualcosa si è rotto e ha funzionato la scorsa settimana, puoi guardare e vedere cosa è cambiato e di solito vedere cosa hai rotto. Vedo ancora sviluppatori "professionali" con le cartelle backup001 e backup_backup001 mescolate alla loro fonte. Forma delle buone abitudini quando sei ancora giovane.
Erik,

@Erik Yuck, le cartelle di backup suonano male. Uso il controllo del codice sorgente per i miei progetti, anche se non sono molto bravo a impegnarmi spesso.
vedosity

Risposte:


61

Se usi il controllo decentralizzato della fonte (Mercurial o Git o Bazaar o altro), ottieni vantaggi rispetto a SVN / CVS che lo rendono facile, utile e potente da utilizzare nel caso in cui sei un indy:

  1. Impegni a livello locale : la dir del progetto è il tuo repository con cronologia COMPLETA. Quindi non devi avere un server, ti impegni direttamente nel tuo repository e puoi avere più repository nello stesso computer. Usi un laptop che apri a volte per continuare a lavorare sulle tue cose? Grande! Non è necessario configurare un server e, se necessario, in un secondo momento è semplice e basta "spingere" e "estrarre" le modifiche tra i repository.
  2. È fatto per facilitare la sperimentazione : spesso è necessario avere un'idea di una funzionalità senza inquinare il codice. Con SVN e CVS puoi già utilizzare un sistema di diramazione e abbandonare il ramo se la funzionalità non è buona come volevi. Ma se vuoi unire la funzionalità con la versione trunk, avrai molte sorprese difficili da risolvere. Git, Mercurial e Bazaar (almeno) rendono le fusioni e le filiali davvero facili. Puoi anche semplicemente duplicare un repository, lavorarci su un po 'di tempo, ancora impegnarti e ucciderlo o inviare le modifiche nel repository principale, se lo desideri.
  3. Flessibilità dell'organizzazione : come indicato in precedenza, poiché disponi di repository che organizzi di cui hai bisogno, è facile iniziare da soli e consentire ad altre persone di lavorare con te cambiando la tua organizzazione. Nessuna organizzazione è imposta, quindi devi solo configurarlo e voilà. Spesso spingo / estraggo le modifiche tra i miei computer (laptop / desktop / server) e sono ancora solo sui miei sviluppatori. Uso Mercurial e questo mi aiuta a duplicare il mio lavoro, ma anche a lavorare su funzionalità pensate all'esterno sul mio laptop, quindi continuare a lavorare su altre funzionalità sul mio desktop, quindi spingere le modifiche del mio laptop sul mio desktop o server e unire l'intero desktop + laptop e metterlo (come backup e futuro repository di lavoro di squadra) sul mio server.
  4. Aiuta a impostare i backup : se si configura un repository centrale (su GitHub se è pubblico o in un repository privato su BitBucket) è possibile scrivere facilmente uno script che verrà eseguito ogni volta che viene avviato un computer, quindi passare lo script su ai tuoi amici in modo che esegua regolarmente backup automatici del tuo lavoro. È quello che sto facendo, quindi sono sicuro che non sarà facile perdere il lavoro.

Infatti, attualmente, non hai scuse per non utilizzare uno strumento di controllo sorgente per qualsiasi progetto. Perché sono più potenti e flessibili di prima e si adattano alle tue esigenze.


6
C'è sempre GitHub .
HedgeMage,

8
O bitbucket.org se stai usando Mercurial.
Terence Ponce,

7
Mercurial con un repository di filesystem locale su dropbox funziona davvero bene per un singolo sviluppatore.
Pieter Breed,

1
@Guillaume: un singolo sviluppatore può utilizzare l'aspetto "distribuito" di un DVCS. Lo voglio. Ad esempio, posso lavorare sul computer A, spingere il mio lavoro sulla mia chiave USB e quindi estrarre da questa chiave USB sul computer B.
Barjak

1
@Guillaume "Distribuito" è un aspetto tecnico, non organizzativo. È possibile utilizzare un sistema di origine constrol centralizzato con un'organizzazione con integratori autorizzati a convalidare solo il codice commesso. Questo è possibile ma difficile da configurare a causa della natura centralizzata dello strumento. Ma questo è ancora un problema ortogonale.
Klaim,

34

il controllo del codice sorgente è assolutamente inutile per gli sviluppatori indipendenti, perché come tutti sappiamo:

  • gli sviluppatori indipendenti non commettono mai errori
  • gli sviluppatori indipendenti non escono mai revisioni che non funzionano
  • gli sviluppatori indipendenti non hanno mai più di una versione, quindi non hanno alcuna utilità per i rami
  • gli sviluppatori indipendenti non si preoccupano mai di cosa sono cambiati ieri o la scorsa settimana
  • gli sviluppatori indipendenti non hanno mai avuto bisogno di backup

Chiamami "sviluppatore dipendente": i repository Mercurial clonano facilmente tra il mio desktop, laptop, unità di backup USB e bitbucket.org. Sono diventato dipendente e mi piace così!


6
Questa risposta è sarcastica?

4
@kurtnelle: estremamente!
Steven A. Lowe,

1
Kewlio, sto solo controllando.

21

Perchè no?

Sono uno sviluppatore solista e utilizzo BitBucket e Mercurial per i miei progetti personali. Avere la possibilità di ripristinare e fork il tuo codice è troppo bello per lasciar perdere.


8
+1 per BitBucket: offrono gratuitamente repository privati ​​illimitati.
Jon Sagara,

2
I repository privati ​​gratuiti sono il motivo per cui utilizzo BitBucket su GitHub.
Terence Ponce,

4
repository privato gratuito ?? Potresti avermi convertito da git a hg.
Gauthier,

@Gauthier, sì, BitBucket ha repository privati ​​gratuiti. Non sono sicuro però che siano illimitati.
Terence Ponce,

1
Puoi ancora usare git con bitbucket. In effetti l'importazione direttamente da github include chiavi ssh. Ho appena fatto la mossa ma uso ancora git (mi piace di più!)
Daniel Casserly,

1

Trovo valore in esso, personalmente. I miei progetti vengono tutti archiviati in repository git (tutti i quali rimango su più macchine in caso di guasto hardware). Le funzioni più utili sono la ramificazione (in modo che io possa eseguire un esperimento che guasta con metà della mia base di codice e non preoccuparmi di far esplodere qualcosa in modo permanente) e ripristinare (che è fondamentalmente semplicemente annullare gli steroidi; nel caso in cui trovassi di aver fatto errore fuori dal normale intervallo di annullamento).


1

Sì. È molto molto utile Il mio amico Matt Gallagher ha pubblicato questo eccellente articolo su questo argomento solo pochi giorni fa nel suo blog di sviluppo iOS / MacOS "Cocoa With Love".

L'articolo è incentrato su Mac & Git ma tratta le basi.

Potresti anche essere interessato alle seguenti Domande su StackExchange (e alle loro risposte).


1

Di valore?? Dovere! Se non usi il controllo del codice sorgente, non controlli i tuoi sorgenti, e questo è male. Non puoi differire, non puoi ripristinare, non puoi tenere traccia delle modifiche: passerai ore a cercare di scoprire il bug fittizio che hai appena inserito. È meglio averlo su un server di backup, ma puoi anche tu il tuo computer e utilizzare qualsiasi metodo di backup che ritieni appropriato.


2
In realtà uso il controllo del codice sorgente, ma tendo anche a fare cose come l'ingegnerizzazione eccessiva e l'adozione di cose eccessive. Sono ben noto per questo al lavoro. Inoltre, non penso che nessun programmatore in cui lavoro, compreso me, abbia lavorato in nessun altro posto come programmatore e la maggior parte di noi è ancora al liceo.
vedosity

1

Usa assolutamente il controllo del codice sorgente. Quindi configurare un server di build e automatizzare i processi di build e test. Attiva le build dai commit di origine del tuo repository centrale. Ho lavorato da solo per tre anni in questo modo ed è meraviglioso.


0

Sì.

Anche i singoli sviluppatori devono talvolta vedere lo stato del loro codice da qualche revisione passata. Ed è sempre una buona idea fare il backup di tutto ciò che è importante, e questo vale per tutte le persone.

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.