
Subversion è un sistema di controllo versione di software, dati, documenti o anche foto e file multimediali. Il sistema appunto, a differenza di CVS, supporta ogni tipo di file che abbiamo nel nostro computer.
Ma a cosa serve un controllo di versione mi direte? Beh per fare un esempio pratico e veloce supponiamo di avere un documento Word che magari aggiorniamo con una certa frequenza oppure stiamo scrivendo un software o un programmino in php che giri sul nostro piccolo server.
Bene grazie al controllo di versione tra la lunga lista di cose possibili possiamo:
- Tener traccia di tutte le modifiche effettuate su un file;
- Aprire un file in modifica e bloccarlo ad eventuali modifiche di altre persone fino a quando non avremo terminato il nostro lavoro.
- In caso di propagazione di errori possiamo tranquillamente e in qualsiasi momento ritornare ad una versione precedente;
- Nell’eventualità potremo sviluppare due versioni parallele di un software;
- Backup di tutte le versioni del nostro programma (forse la cosa pi importante);
- Tanto altro ancora, sono solo al mio primo giorno di utilizzo serio con SubVersion quindi perdonatemi per la mancata padronanza dello strumento
In questo articolo vedremo come installare Subversion con il relativo client TortoiseSVN per windows, come creare un repository per il nostro progetto, come registrare le modifiche e inserire nuovi file al repository. Questa guida è stata creata con lo scopo di aiutare gli utenti windows nell’uso di questo strumento siccome le guide in italiano scarseggiano mentre invece abbondano per linux che quindi non tratterò (e non l’ho ancora usato li datemi tempo
).
Un’ultima cosa e poi partiamo, l’articolo è molto lungo, armatevi di tanta pazienza, è molto più facile fare le cose che scriverle ed in questo momento sto scrivendo io
Installazione di SubVersion
Prima di tutto dovrete procurarvi il software Subversion, il sito è questo dal menu a sinistra andate su download e scorrete la pagina fino alla sezione Windows cliccate Win32 packages built against Apache 2.0 e scaricate l’installer setup.exe, al momento in cui scrivo svn-1.4.4-setup.exe.
Installate quindi Subversion, non ci sono particolari configurazioni da fare quindi installatelo come se fosse un qualsiasi altro programma, se non sapete come installarlo non credo siate ancora pronti per una cosa del genere quindi andate a studiare su Wikipedia.
Installazione di TortoiseSVN
Ora procediamo al download di TortoiseSVN da questa pagina. A seconda dell’architettura del vostro pc dovrete scegliere la versione a 32 o 64 bit, se non sapete quale prendere prendete semplicemente quella da 32 bit, attualmente l’ultima versione del software : TortoiseSVN-1.4.4.9706-win32-svn-1.4.4.msi.
Anche per TortoiseSVN non ci sono particolari procedure, installate normalmente e nel caso non vi chieda di riavviare il computer riavviatelo lo stesso perché TortoiseSVN va ad integrarsi nella Shell di explorer come potete vedere nell’immagine qui a lato. Lo stesso menu apparirà anche cliccando con il destro su un file o su una determinata cartella.

Uso di Subversion su un nostro progetto
Vedremo ora come cominciare a portare il nostro progetto creato in un nuovo repository. Supponiamo quindi di avere un progetto da qualche parte nel nostro computer la mia cartella sarà: C:\works\mio_progetto e all’interno ci sono un file php ed uno txt.

Come prima cosa, opzionale, settiamo un global ignore pattern ci tornerà utile per decidere quali file controllare e quali meno, quindi tornate di un livello superiore nella cartella o aprite l’esplora risorse e cliccate sulla cartella mio_progetto con il tasto destro selezionando Tortoise SVN poi Settings e inserite separando con uno spazio i nomi di tutti i file che non vorrete monitorare, io ci ho inserito Thumbs.db il mini-file che salva le anteprime delle immagini e dei video nelle cartelle.

Creazione del repository
Ora create la cartella del repository SVN, C:\SVN. E al suo interno la cartella che sarà il repository del nostro progetto, C:\SVN\repo_mio_progetto. Bene, adesso non ci resta altro che definire con TortoiseSVN che questa cartella sarà il repository del nostro progetto, come illustrato nell’immagine qui sotto destro sulla nostra cartella repo_mio_progetto selezionare TortoiseSVN/Create repository here… infine selezionate il tipo di repository da utilizzare a scelta tra Native filesystem e Berkeley database visto che almeno per ora non abbiamo esigenze particolari usiamo il primo di tipo nativo (FSFS).

Ok se tutto andato bene dir che il repository stato correttamente creato. All’interno della cartella repository saranno create delle cartelle e file come mostrato in figura:

Effettuare la prima importazione del nostro progetto
Questo passo molto importante, serve a definire la base di partenza del nostro repository sul quale poi funzioneranno il controllo di versione e le altre funzioni di Subversion. fate dapprima una copia di salvataggio del vostro progetto e successivamente create una nuova cartella in c con la seguente struttura:
C:/nuova/
branches
tags
trunk
Ora spostate il contenuto della cartella C:\works\mio_progetto nella cartella C:\nuova\trunk in modo tale da rendere la cartella mio_progetto completamente vuota, ricordatevi di controllare che sia vuota perchè dopo dovremo scaricare in questa cartella il nostro repository per poter lavorare (checkout).
Piccola nota sul perché della creazione delle 3 cartelle branches, tags e trunk. Allora trunk è la cartella principale del nostro progetto, al suo interno verranno salvati i file del progetto in corso, mentre in branches ci saranno le eventuali ramificazioni del nostro progetto in versioni parallele di sviluppo mentre tags per ora non ci serve ma sappiate che rende più organizzato il lavoro allo sviluppatore(ma precisamente neppure io al momento l’ho saputo utilizzare).
Adesso possiamo proseguire con la prima importazione nel repository del nostro progetto, per far ciò cliccate con il destro su C:\nuova selezionate TortoiseSVN e successivamente su Import…

Come URL del repository date quello da voi precedentemente creato nella cartella SVN file:///C:/SVN/repo_mio_progetto e date una piccola descrizione nel campo import message servirà a ricordare meglio la versione del nostro progetto.

Date OK e attendete la fine dell’importazione come potrete vedere verranno aggiuti tutti i file della cartella ‘nuova‘ e le revisione sarà la numero 1. Volendo potete controllare il vostro repository andando in C:/SNV cliccando con il destro su repo_mio_progetto poi TortoiseSVN e infine Repo-browser dove comparirà una lista navigabile con tutti i vostri file, revisioni e messaggi. Ora potete anche eliminare la cartella C:/nuova visto che non serve più era solamente una cartella temporanea per la nostra importazione di base.
Checkout del nostro repository nella cartella di lavoro, ci siamo quasi
Adesso ricordate la nostra cartella iniziale del progetto? C:\works\mio_progetto, bene cliccate con il destro su mio progetto andate su TortoiseSVN ed effettuate il Checkout… che altro non è lo scaricamento con aggiornamento sulla nostra cartella locale di tutti i file nel nostro repository. Come mostrato in immagine qui sotto ricordate di impostare il giusto percorso del repository SVN e della cartella di Checkout, dovrebbero essere già impostati viste le precedenti operazioni ma controllare sempre non fa male

Una volta dato OK il Checkout dovrebbe avere esito postivo:

Come potrete constatare ora nella cartella mio_progetto avrete tutti i file del vostro repository, che altro non erano i file iniziali di questa directory da voi creati ma adesso strutturati sottoforma di progetto svn.
Effettuare modifiche sui nostri file e COMMIT
Andiamo nella cartella trunk e cominciamo a lavorare su uno dei nostri file alla fine quando saremmo soddisfatti delle nostre modifiche salviamo il file come facciamo normalmente dopodiché per effettuare la registrazione della modifica sul nostro repository (chiamato comunemente commit) basterà cliccare con il destro sul nostro file modificato, andare su TortoiseSVN e cliccare su commit. Invece cliccando su update verrà ripristinato il file sulla nostra directory nella versione che si trova nel repository.

Aggiunta di file al nostro repositoy ADD
Il procedimento analogo a quello del commit, basta creare un nuovo file e con il destro andare su TortoiseSVN e successivamente su Add… dare ok e verificare l’aggiunta sul nostro repository. Dopodiché effettuare anche un commit su questo file per fare il subversioning. Se tutto va bene dovremmo essere alla revision 3 del nostro progetto.
Fine
Bene per ora sembra essere tutto, ho impiegato mezza giornata a scrivere il tutto, nel prossimo articolo vedremo come fare i backup del nostro repository e come ripristinarli (restore). Quasi alla fine della scrittura di questo articolo ho scoperto che esiste un libro: Controllo di versione con Subversion che però riguarda Linux, stasera comincerò a leggerlo, inoltre sembra superfluo fare appunto una guida per linux visto che c’ un libro al suo riguardo.
Ciao a tutti!!
Approfondimenti...
Microsoft forse impazzisce! Già, il confine tra sanità mentale e pazia per la Microsoft ormai è un esile filo. Pensate, è stato ufficialemnte...
Oggi vi parlerò di uno strumento che ho trovato veramente utile e potente. FreeCommander è un comodo tool che vi permette di muovervi con velocità tra le...
Se siete alla ricerca di un software open source da installare sul vostro sistema, potete provare ZeuApp. È un’applicazione gratis, leggera, portatile,...
WinPenPack è un pacchetto di Software Open Source con una qualità che lo rende speciale: la portabilità. I programmi possono essere usati direttamente da...
Nei giorni scorsi è stata rilasciata l’ultima beta di Opera 10. Le novità sono veramente tante, la più innovativa è sicuramente l’introduzione di...
Commenti...
Grazie
Grazie, stavo giusto cercando di capire il funzionamento. Unica cosa è che nel menu contestuale non mi esce la voce commit, benchè nelle preferenze sia selezionata. C’è un’altro modo per fare il commit di un file?
S.
# 17/1/2009 21:57
[...] che tu abbia il tuo bel client TortoiseSVN installato. 1-Una bella guida sull’uso di tortoisesvn: http://www.italianbloggers.it/guida-pratica-subversion/ 2-Se un file è stato modificato da 2 o più persone contemporaneamente (cosa possibilmente da [...]
Ah! Finalmente quello che stavo cercando!
Non ho capito bene come fare se sto lavorando su un sito e l’SVN ha bisogno delle credenziali d’accesso.
Grazie mille per il tempo dedicato alla stesura di questa guida.
Mi è stata di grande aiuto, soprattuto per il poco tempo che potevo dedicare all’apprendimento di TortoiseSVN
Grazie guida semplice ed essenziale, però non mi funziona l’update ossia se modifico il file nella mia cartella di progetto e poi faccio l’update per ritornare alal versione che cè nel repository, non funziona, ossia rimane il file nella cartella di progetto con la modifica effettuata.
Il commit invece funziona senza problemi.
Mi sapete aiutare ? grazie
Ma un software del genere funziona anche per delle gallerie di immagini? Ho una serie di cartelle contenenti immagini che modifico spesso e volevo un sw che mi consentisse di effettuare il backup solo dei file modificati. Può essermi utile secondo voi?
Sisi è utilissimo lo facevo io qualche anno fa è davvero comodo. Un solo problema, siccome le immagini sono pesanti e se la connessione non è delle migliori può risultare un’operazione estremamente lenta.

# 17/11/2008 09:39