SVN - Ciclo di vita

Il ciclo di vita di un sistema di controllo della versione è discusso in questo capitolo. Nei capitoli successivi, vedremo il comando Subversion per ogni operazione.

Crea repository:

Il repository è un luogo centrale in cui gli sviluppatori archiviano tutto il loro lavoro. Il repository non solo archivia i file, ma anche la cronologia delle modifiche. Il che significa che mantiene una cronologia delle modifiche apportate ai file.

L'operazione "crea" viene utilizzata per creare un nuovo repository. La maggior parte delle volte questa operazione viene eseguita una sola volta. Quando crei un nuovo repository, il tuo VCS si aspetta che tu dica qualcosa per identificarlo, ad esempio dove desideri che venga creato o quale nome deve essere dato al repository.

Check-out

L'operazione "Checkout" viene utilizzata per creare una copia di lavoro dal repository. La copia di lavoro è un luogo di lavoro privato in cui gli sviluppatori apportano le modifiche e, successivamente, inviano queste modifiche al repository.

Aggiornare

Come suggerisce il nome, l'operazione di "aggiornamento" viene utilizzata per aggiornare la copia di lavoro. Questa operazione sincronizza la copia di lavoro con il repository. Poiché il repository è condiviso da tutti i team, gli altri sviluppatori possono eseguire il commit delle modifiche e la tua copia di lavoro diventa più vecchia.

Supponiamo che Tom e Jerry siano i due sviluppatori che lavorano a un progetto. Entrambi controllano l'ultima versione dal repository e iniziano a lavorare. A questo punto, le loro copie di lavoro sono completamente sincronizzate con il repository. Jerry completa il suo lavoro in modo molto efficiente e apporta le sue modifiche al repository.

Ora la copia funzionante di Tom non è aggiornata. L'operazione di aggiornamento estrarrà le ultime modifiche di Jerry dal repository e aggiornerà la copia di lavoro di Tom .

Esegui modifiche

Dopo il checkout, è possibile eseguire varie operazioni per eseguire le modifiche. La modifica è l'operazione più comune. È possibile modificare il file esistente per aggiungere / rimuovere contenuti dal file.

Si possono aggiungere file / directory. Ma immediatamente questi file / directory non diventano parte del repository, ma vengono aggiunti all'elenco delle modifiche in sospeso e diventano parte del repository dopo l'operazione di commit.

Allo stesso modo si possono eliminare file / directory. L'operazione di eliminazione elimina immediatamente il file dalla copia di lavoro, ma l'effettiva eliminazione del file viene aggiunta all'elenco delle modifiche in sospeso e le modifiche vengono apportate al repository dopo l'operazione di commit.

L'operazione "Rinomina" cambia il nome del file / directory. L'operazione "Sposta" viene utilizzata per spostare file / directory da un luogo a un altro in un albero di repository.

Rivedi le modifiche

Quando si estrae la copia di lavoro o si aggiorna la copia di lavoro, la copia di lavoro è completamente sincronizzata con il repository. Ma man mano che si apportano modifiche alla copia di lavoro, questa diventa più recente del repository. Ed è una buona pratica rivedere le modifiche prima dell'operazione di "commit".

L'operazione "Stato" elenca le modifiche che sono state apportate alla copia di lavoro. Come accennato in precedenza, ogni volta che si apportano modifiche alla copia di lavoro, tutte queste modifiche diventano parte dell'elenco delle modifiche in sospeso. E l'operazione di "stato" viene utilizzata per visualizzare l'elenco delle modifiche in sospeso.

L'operazione "Stato" fornisce solo un elenco di modifiche ma non i dettagli su di esse. È possibile utilizzare l' operazione diff per visualizzare i dettagli delle modifiche apportate alla copia di lavoro.

Risolvi gli errori

Supponiamo che uno abbia apportato modifiche alla sua copia di lavoro, ma ora vuole buttare via queste modifiche. In questa situazione, l'operazione di "ripristino" aiuterà.

L'operazione di ripristino ripristina le modifiche apportate alla copia di lavoro. È possibile ripristinare uno o più file / directory. Inoltre è possibile ripristinare l'intera copia di lavoro. In questo caso, l'operazione di "ripristino" distruggerà l'elenco delle modifiche in sospeso e riporterà la copia di lavoro al suo stato originale.

Risolvi i conflitti:

Possono verificarsi conflitti al momento della fusione. L'operazione di "unione" gestisce automaticamente tutto ciò che può essere fatto in sicurezza. Tutto il resto è considerato conflitto. Ad esempio, il file "hello.c" è stato modificato nel ramo ed eliminato in un altro ramo. Una situazione del genere richiede che una persona prenda la decisione. L'operazione di "risoluzione" viene utilizzata per aiutare l'utente a capire le cose e per informare VCS sui modi di gestire i conflitti.

Effettua modifiche

L'operazione "Commit" viene utilizzata per applicare le modifiche dalla copia di lavoro al repository. Questa operazione modifica il repository e altri sviluppatori possono vedere queste modifiche aggiornando la loro copia di lavoro.

Prima di eseguire il commit, è necessario aggiungere file / directory all'elenco delle modifiche in sospeso. Questo è il luogo in cui i cambiamenti aspettano di essere confermati. Con il commit, di solito forniamo un messaggio di log per spiegare perché qualcuno ha apportato modifiche. Questo messaggio di registro diventa una parte della cronologia del repository. Il commit è un'operazione atomica, il che significa che l'intero commit ha esito positivo o viene annullato. Gli utenti non vedono mai il commit a metà.