SVN - Concetti di base
Cos'è il sistema di controllo della versione?
Version Control System (VCS) è un software che aiuta gli sviluppatori di software a lavorare insieme e mantenere una cronologia completa del loro lavoro.
Following are the goals of a Version Control System.
- Consenti agli sviluppatori di lavorare contemporaneamente.
- Non sovrascrivere le modifiche reciproche.
- Conserva la cronologia di ogni versione di tutto.
A VCS is divided into two categories.
- Centralized Version Control System (CVCS) e
- Sistema di controllo della versione distribuito / decentralizzato (DVCS).
In questo tutorial, ci concentreremo solo sul sistema di controllo della versione centralizzato e soprattutto Subversion. Subversion rientra nel sistema di controllo delle versioni centralizzato, il che significa che utilizza il server centrale per archiviare tutti i file e consente la collaborazione in team.
Terminologie di controllo della versione
Cominciamo discutendo alcuni dei termini che utilizzeremo in questo tutorial.
Repository:Un repository è il cuore di qualsiasi sistema di controllo delle versioni. È il luogo centrale in cui gli sviluppatori archiviano tutto il loro lavoro. Il repository non solo archivia i file ma anche la cronologia. Si accede al repository tramite una rete, che funge da server e strumento di controllo della versione che funge da client. I client possono connettersi al repository e quindi possono archiviare / recuperare le modifiche al / dal repository. Memorizzando le modifiche, un client le rende disponibili ad altre persone e recuperando le modifiche, un client accetta le modifiche di altre persone come una copia di lavoro.
Trunk: Il trunk è una directory in cui avviene tutto lo sviluppo principale e di solito viene estratto dagli sviluppatori per lavorare al progetto.
Tags: La directory dei tag viene utilizzata per memorizzare le istantanee con nome del progetto. L'operazione di tag consente di dare nomi descrittivi e memorizzabili a una versione specifica nel repository.
Ad esempio, LAST_STABLE_CODE_BEFORE_EMAIL_SUPPORT è più memorabile di
UUID repository: 7ceef8cb-3799-40dd-a067-c216ec2e5247 e
Revisione: 13
Branches:L'operazione di filiale viene utilizzata per creare un'altra linea di sviluppo. È utile quando si desidera che il processo di sviluppo si sposti in due direzioni diverse. Ad esempio, quando rilasci la versione 5.0, potresti voler creare un ramo in modo che lo sviluppo delle funzionalità 6.0 possa essere tenuto separato dalle correzioni di bug 5.0.
Working copy:La copia di lavoro è un'istantanea del repository. Il repository è condiviso da tutti i team, ma le persone non lo modificano direttamente. Invece ogni sviluppatore controlla la copia di lavoro. La copia di lavoro è un luogo di lavoro privato dove gli sviluppatori possono svolgere il proprio lavoro rimanendo isolati dal resto del team.
Commit changes:Il commit è un processo di archiviazione delle modifiche dal luogo di lavoro privato al server centrale. Dopo il commit, le modifiche vengono rese disponibili a tutto il team. Altri sviluppatori possono recuperare queste modifiche aggiornando la loro copia di lavoro. Il commit è un'operazione atomica. L'intero commit ha esito positivo o viene annullato. Gli utenti non vedono mai il commit completato a metà.