Domanda

Da dove dovrei iniziare a conoscere i sistemi di controllo della versione?Ho utilizzato SVN, Team Foundation e Sourcesafe in passato, ma non sento di averlo capito completamente, e nemmeno il mio team sembra capirlo.

Quali sono i punti più importanti da padroneggiare?Mi rendo conto che questo differisce da VCS a VCS, ma per il bene di questa domanda possiamo supporre che Subversion sia il VCS che mi interessa di più conoscere.

Inoltre, se puoi, consigliami eventuali libri sull'argomento che ritieni utili.

È stato utile?

Soluzione

L'articolo di Wikipedia sul controllo delle revisioni è un ottimo punto di partenza

Controllo di revisione

Quando cercavo di insegnare ai miei colleghi, ho scoperto che fargli comprendere il vocabolario alla fine era un ottimo modo per iniziare a introdurlo alle tecniche di controllo del codice sorgente.

Non sai cos'è una filiale?Andate a scoprire e come funzionano :)

C'è un libro gratuito sulla sovversione online su Controllo della versione con Subversion che costituisce un prezioso riferimento.

Altri suggerimenti

Penso che i punti più importanti da imparare riguardo ai sistemi di controllo del codice sorgente siano i seguenti:

  • il valore di check-in/impegni piccoli e frequenti
  • tagging, ramificazione e fusione
  • rollback
  • risoluzione del conflitto
  • esclusivo vs.pagamento non esclusivo
  • integrazione continua
  • Sviluppo guidato dai test e test unitari automatizzati rispetto ai sistemi di controllo del codice sorgente
  • biforcazione

Se hai coperto questi concetti principali, queste sono praticamente la maggior parte delle cose che avrai bisogno di sapere per il controllo del codice sorgente :)

Ci sono un paio di ebook gratuiti sull'argomento.Tentativo:

Controllo della versione con Subversion: Controllo della versione con sovversione

Controllo della versione di Subversion (PDF): Controllo della versione di sovversione

Ho letto e consiglierei il primo.Non ho letto "Controllo della versione di Subversion", ma sembra piuttosto approfondito.

Per rispondere alla tua domanda:Quali sono i punti più importanti da padroneggiare? Suggerirei che dopo aver completato l'intero processo di check-in e out, ripristinando le versioni precedenti ed eseguendo le differenze, dovresti dare un'occhiata alla ramificazione.La ramificazione può aiutarti ad affrontare il dolore di trovarti nel mezzo di un grande cambiamento e di dover improvvisamente eseguire una correzione di bug e distribuirlo in produzione senza mescolare le cose a metà su cui stai lavorando.

Penso che la documentazione di Subversion sia un buon punto di partenza.Ho scoperto che Wikipedia non aiuta davvero, poiché copre solo un punto di vista "fondamentale".

Nel Libro sulla sovversione menzionato da Alex, consiglierei in particolare il Capitolo 1, anche se potrebbe essere a un livello troppo basso se hai già esperienza con Svn.Il capitolo 4 tratta in dettaglio la ramificazione e la fusione, ma è piuttosto tecnico.

Ciò che mi ha aiutato molto è il Guida all'uso quotidiano nella documentazione di TortoiseSVN;copre le operazioni più importanti in stile tutorial.

Immagino che le cose più importanti che devi comprendere siano ramificazione, fusione e tagging.Comprenderli richiede tempo e pratica, quindi consiglio vivamente un piccolo progetto per animali domestici in un repository locale, in modo da poter sperimentare.Penso che sia importante capire che l'intero sistema è basato su differenze:una fusione non è altro che applicare automaticamente le modifiche apportate in un ramo al codice di un altro ramo, invece di correggere tu stesso il codice.Cose come i conflitti (che mi ci è voluto parecchio tempo per capire) sono solo conseguenze di ciò.

Ma ovviamente sto ancora imparando :)

Inoltre, come te, non mi sono mai sentito veramente a mio agio al 100% con SVN o SourceSafe.

Guardare Mercuriale. Avvio rapido E Bigliettini
anche un grande foglietto illustrativo di DongWoo Lee (il suo sito sembra inattivo quindi l'ho scansionato e caricato sul mio)

Con Mercurial tutto sembrava molto più fluido e facile, non so perché, perché non è così diverso nei comandi dagli altri.

Non sono sicuro di quanta esperienza tu abbia con i sistemi di controllo della versione, ma per qualcuno che non ha una conoscenza preliminare del concetto consiglio di leggere i primi capitoli del Libro La sovversione.Alcune delle cose descritte sono specifiche di Subversion, ma molti dei concetti sono "universali" per i sistemi di controllo della versione e per come lavorare con essi.

Penso che sia molto importante che le persone facciano uno sforzo nel cercare di comprendere i concetti principali e le motivazioni alla base dei sistemi di controllo della versione prima di iniziare a usarli.Troppo spesso vedo gli sviluppatori utilizzare solo un piccolo sottoinsieme delle funzionalità del loro sistema perché non comprendono i concetti sottostanti e quindi non vedono il motivo di utilizzare quelle che considerano funzionalità "avanzate" o "non necessarie", oppure lo sono semplicemente paura di farlo per paura di rompere qualcosa o causare problemi al progetto.

Avendo sperimentato questo fenomeno con molti sviluppatori in passato, recentemente ho scritto un riassunto di ciò che considero migliori pratiche per il controllo della versione sul mio blog.

Guardare IDIOTA.Un discorso a riguardo Qui.

IMHO, la migliore risorsa di rete per la gestione della configurazione sarebbe Il progetto ACME di Brad Appleton

Dovresti leggere tutti i modelli SCM e i modelli Anti.Tutti i termini tecnici SCM sono ben definiti in questo sito e sono presenti molti articoli sulle tecniche di ramificazione, SCM agile e altri argomenti importanti.

Questo, probabilmente, ti fornirà una base teorica sufficiente per gestire qualsiasi strumento di versione specifico.

Per quanto riguarda un libro su Subversion, probabilmente sarà quello ufficiale Libro La sovversione che è stato menzionato sopra.È disponibile online gratuitamente oppure è possibile acquistarne una copia cartacea.

IMHO, questo è Il libro:Il libro di Berczuk sui modelli SCM

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top