Qual è il valore dell'utilizzo del controllo versione?


19

Sono nuovo nel controllo delle versioni (attualmente utilizzo SVN), ma non capisco come questo aiuti gli sviluppatori. Cosa fa il controllo versione che lo rende utile in un ambiente di sviluppo?


4
Basta leggere l'eccellente serie HOWTO di Controllo del codice di Eric Sink: ericsink.com/scm/source_control.html . Per il resto, non c'è molto da rispondere qui o discutere.
Deckard,

4
Il controllo del codice sorgente è una di quelle cose che sembrano inutili fino a quando non ne hai bisogno. Quindi ti rendi conto che non puoi farne a meno. Sfortunatamente, ormai è troppo tardi. Una specie di assicurazione contro le inondazioni, tranne che trovo che il controllo del codice sorgente abbia un'utilità molto maggiore.
Rein Henrichs,

2
@rahmanisback lo vuoi subito dopo aver fatto File | Nuovo progetto ... ne hai bisogno non appena hai> 1 sviluppatore nel progetto (la mia linea standard è> ​​0 sviluppatori - e credo che questo sia più vero che mai)
Murph

8
Lavorare senza il controllo della versione è un po 'come rimuovere il comando "Annulla" dall'elaboratore di testi che usi per scrivere il tuo saggio, o rimuovere tutte le gomme e i fluidi correttivi dalla tua scrivania.
rwong,

2
@rahmanisback Non appena si elimina accidentalmente un file o si perde in altro modo i dati, per uno. @rwong bella analogia.
Rein Henrichs,

Risposte:


21

VisualSVN e TortoiseSVN sono solo client dell'interfaccia utente per il server SVN. Il server SVN è un sistema di controllo sorgente / versione. Il sistema di controllo della versione è la risorsa chiave per qualsiasi sviluppo reale perché memorizza le versioni dei tuoi codici sorgente. Quando si utilizza il sistema di controllo versione, si conserva solo una copia locale dei codici sorgente. La copia principale viene archiviata nel sistema di controllo della versione e si effettuano modifiche al sistema.

SVN consente:

  • facile condivisione dei codici sorgente tra l'intero team attraverso il repository centrale
  • il backup dei codici sorgente e di altri file di risorse relativi al progetto
  • mantenendo la cronologia della modifica dei codici sorgente
  • puoi ripristinare qualsiasi versione conservata nella cronologia
  • puoi confrontare le modifiche tra le versioni
  • puoi vedere chi ha apportato le modifiche
  • puoi bloccare il file per un accesso esclusivo in modo che nessun altro possa lavorare sul file
  • puoi vedere chi sta lavorando su qualsiasi file di codice sorgente o chi ha bloccato il file
  • puoi unire le modifiche in caso di lavoro parallelo sullo stesso file
  • puoi vedere i commenti associati alle modifiche impegnate
  • con strumenti aggiuntivi è possibile associare le modifiche impegnate alle attività
  • puoi etichettare / taggare la versione per trovare facilmente, ad esempio, le versioni di produzione
  • puoi ramificare il codice sorgente - creare versioni parallele in cui un ramo può essere considerato come quello principale e l'altro può essere utilizzato per testare alcune funzionalità speciali o per continuare lo sviluppo della nuova versione del prodotto mentre le correzioni alla versione di produzione corrente sono fissate nella principale ramo
  • puoi unire le modifiche tra i rami
  • eccetera.

VisualSVN è un'estensione di Visual Studio che consente di utilizzare il repository SVN direttamente dall'interfaccia utente di Visual Studio. TortoiseSVN è un'estensione di Windows Explorer che ti consente di utilizzare direttamente il repository SVN mentre sfogli cartelle e file.


+1. Haaa .. dopo aver usato VCS per più di un decennio, è davvero difficile rispondere al "perché". Voglio dire, è così ovvio, ma davvero difficile articolare davvero "perché" il modo in cui l'hai fatto! Bella risposta.
Dipan Mehta,

Credo che AnkhSVN faccia anche un lavoro da killer integrando SVN in Visual Studio.
Saul Delgado,

6

Il controllo della versione offre una serie di cose:

  • Archivia il tuo software in modo da poter vedere lo stato in cui si trovava in momenti precedenti. Molto utile per trovare dove è stato introdotto un bug.
  • Consentire a più sviluppatori dello stesso progetto di condividere e coordinare il proprio lavoro, contribuendo al contempo a evitare di sovrascrivere il lavoro altrui.
  • Supportare la continuità individuale e aziendale in particolare attraverso un server centrale protetto e sottoposto a backup.

È un minimo per qualsiasi lavoro di sviluppo software oltre al solo armeggiare per vedere cosa succede.

Avvertisco sempre chiunque stia lavorando per la prima volta con un sistema di controllo versione che evitarlo è solo un problema invitante. Essi SARANNO incorrere in un problema che quando si guarda indietro si SARANNO rendersi conto che non sarebbe successo se hanno usato il sistema.


0

Lo sviluppatore più produttivo è solo. Uno sviluppatore solitario non deve mai preoccuparsi di coordinarsi con qualcun altro. Ma non appena il progetto diventa plurale, c'è un sovraccarico. E per ogni sviluppatore aggiunto al team, l'overhead peggiora. È compito del VCS aiutare a gestire questo sovraccarico e minimizzare gli effetti.

http://www.ericsink.com/vcbe/html/dvcs_private_workspace.html


8
Anche uno sviluppatore solitario ha bisogno del controllo della versione. Il VCS non si limita a "gestire le spese generali", come suggerisce questa citazione.
alroc,

5
Anche uno sviluppatore solitario può rendersi conto di aver fatto qualcosa di sbagliato una settimana fa e desidera recuperare il vecchio codice. Anche uno sviluppatore solitario potrebbe voler provare un insieme ampio e complesso di refactor senza rischiare la base di codice originale.
Gort the Robot,

Penso che gli aspetti "backup" e "ripristino" del controllo della versione siano ovvi per la maggior parte, ma non è fino a quando non ti rendi conto di come il controllo della versione aiuta a ridurre il sovraccarico di collaborazione che qualcuno capisce veramente il suo valore.
Jace Browning,
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.