(Italiano → English) View originalTranslators:
Da qualche tempo meditavo sull’utilità di iniziare ad usare SVN, perchè la condivisione di progetti software tra più persone può diventare un problema soprattutto quando gli IDE (leggi VS) non ti aiutano, dimenticandosi di uploadare o scaricare parti di progetto dall’FTP condiviso dal Team.8zhyektoh2fkzrdpqpm3abzf0ez5tykn
Perciò, armato del necessario (pc, web, pazienza e un po di tempo) mi sono studiato le diverse soluzioni disponibili per capire quale potesse essere la migliore per un gruppo di sviluppatori che utilizzassero prevalentemente Visual Studio.8wkza1bma92ncnvie41ttn6c71cvw3tl
Ovviamente esistono una marea di articoli che spiegano più o meno bene come utilizzare il tutto, ma li ho trovati in buona parte troppo lunghi o incompleti per la mia soluzione in particolare: per questo ho deciso di scrivermi queste poche righe sicuro del fatto che torneranno buone anche ad altri e mi aiuteranno a superare le mie simpatiche amnesie..9gcnp3a3lips42ry5cq42bobnez3jcis
Ma.. torniamo a noi: il metodo più veloce e utile che ho trovato consiste in pochi semplici passaggi. Eccoli:9pyewowyxhcv5hxamb7jx4cgaezbx4ue
- Installazione del server SVN sul pc condiviso per i progetti. Ho utilizzato VisualSVN server e mi è sembrato semplice, comodo e veloce. Una volta installato è un gioco da ragazzi creare un repository in una directory dedicata, creare gli utenti per l’accesso al repository ed assegnarli allo stesso. Include già apache con webdav per la consultazione via web e si autoconfigura su https.9nr0vfufps0zhcdwcdaydls2t1g06jih
- Installazione del plugin Ankh per Visual Studio, pienamente compatibile anche con VS2008 e – diversamente da quanto ho letto su svariati blog che lo davano come poco stabile o funzionale – molto stabile e completo.a90wj2o0zao24p50avbngmrhwca85b4x
Una volta installati i due componenti fondamentali ecco cosa bisogna fare per iniziare ad usarlo.altf2hkg8ne5004t1qr51w6rj9le1wsw
Avete creato il vostro progetto in Visual Studio? Bene. E’ necessario aggiungerlo all’SVN server. Tasto destro sulla soluzione del progetto, “Add Solution to subversion..”. Si apre una finestrella che chiede il nome del progetto, l’url del repository SVN, e la cartella locale con cui sincronizzare il progetto.a8swuetkh939lbtq1ugj13fvyjil6yuh

Qui dentro si può creare una cartella relativa al nuovo progetto che si sta creando, in modo da avere N progetti all’interno di un’unico repository.a8owz2wuq9tcun6lft1hccrlh45rprpr
Fatto questo sarà possibile aggiungere un commento al file di log relativo all’inserimento, che verrà poi visualizzato in futuro quando si andrà a consultare la history. A questo punto i file nel Solution Explorer appariranno con una piccola croce blu accanto ad agnuno, il che significa che è stato creato un nuovo elemento per l’SVN non ancora replicato (committato fa davvero schifo!) sul server.akhfhisbzmjfqy5e5oizxm5u32gxlcdr
Per replicare le modifiche sul server infatti in ogni momento è sufficiente scegliere l’apposito pulsante “Commit solution changes” (o Commit.. e basta sul singolo file) sempre disponibile tra le opzioni sul progetto (tasto dx…).bv7ku0jzrb7ipt9y9lgyo6p2q0mm9ivk
Da qui in avanti il progetto è caricato sul server ed è possibile lavorarci da postazioni diverse con la sicurezza che tutte le modifiche verranno tracciate e sarà sempre possibile tornare alla versione precedente. Per verificare l’avvenuto caricamento dei files senza doversi loggare sulla macchina è sufficiente controllare con il browser allo stesso indirizzo inserito per l’SNV repository.bht8ka3ticwmbnzhqebiprbthbibaf72

A questo punto ci aspettiamo che gli altri sviluppatori che accedano al progetto siano costantemente aggiornati sulle modifiche riportate al progetto; per farlo dovranno aprirlo direttamente dall’SVN in modo da ottenere sempre l’ultima versione disponibile.b4238wxdsukpy0qkowc7ssa8llbj97si
Una volta aperto Visual Studio si può accedere al nuovo sottomenu, presente sotto il menu File, e selezionare la voce “Subversion->Open from subversion”bg8fszj3jsbstspsy2njcncvvio79x7k

Da qui si deve aggiungere l’SVN repository (lo stesso utilizzato precedentemente per il salvataggio del progetto) cliccando sull’apposito palloncino blu in alto nella finestrella, che come atteso chiederà l’autenticazionecg4fynmesr0v241nc27hnwnke4bdrq2u

Fatto questo saremo pronti a lavorare sul progetto effettuando tutte le modifiche desiderate. Per ogni modifica effettuata al progetto infatti i file coivolti saranno marcati in modo diverso (con una croce blu per i nuovi elementi, e con un quadrato rosso per i file modificati), segnalando la discrepanza con il repository fino al momento del commit in cui i cambiamenti saranno replicati sul server.cr7dcs2b10py0g3mza0bc0t4p2iki1ap

E cosa succede se un file viene modificato contemporaneamente da due sviluppatori?crg5j3vvskg189ewwlf3lur6vn783zv2
In questo caso se non ci sono conflitti tra le modifiche, i file vengono mergiati senza problemi; viceversa se le modifiche riguardano parti di codice in comune si viene avvertiti con quello che apparentemente può sembrare un errorec2i3y9bs1t446lgwkt8x9yxq6lefua3x

e le modifiche riportate da entrambe le parti vengono segnalate con opportuni simboli e con il numero di revisione che ha causato il conflitto.dfofjbxirqv71df4u0iatuydhis3uziz

Altre cose utili che si possono fare:dr45z43pjjkay7fi1j5yhjragg1rnfgw
Visualizzare l’history del progetto, in cui vengono segnalati i file modificati nelle diverse revision, e per ogni file è possibile visualizzare cosa è stato modificato (“view solution history”)drdy6fw993ad50rszukqqdpcm1pf9d19

e trovare chi è la causa delle modifiche che hanno fatto esplodere il server su cui era in esecuzione il progetto dopo l’ultima modifica
(Sul file, Subversion-> Blame)dr9yc3zji30heb3ncu4o0l115mcms7wj


Questo è quanto, l’SVN è pronto e non rimane che provare a distruggere tutto!
dqs5f4ck9ipkn5h36ivsd9qd08wb7v1r
(original) Visualizza English translation
Da qualche tempo meditavo sull’utilità di iniziare ad usare SVN, perchè la condivisione di progetti software tra più persone può diventare un problema soprattutto quando gli IDE (leggi VS) non ti aiutano, dimenticandosi di uploadare o scaricare parti di progetto dall’FTP condiviso dal Team.
Perciò, armato del necessario (pc, web, pazienza e un po di tempo) mi sono studiato le diverse soluzioni disponibili per capire quale potesse essere la migliore per un gruppo di sviluppatori che utilizzassero prevalentemente Visual Studio.
Ovviamente esistono una marea di articoli che spiegano più o meno bene come utilizzare il tutto, ma li ho trovati in buona parte troppo lunghi o incompleti per la mia soluzione in particolare: per questo ho deciso di scrivermi queste poche righe sicuro del fatto che torneranno buone anche ad altri e mi aiuteranno a superare le mie simpatiche amnesie..
Ma.. torniamo a noi: il metodo più veloce e utile che ho trovato consiste in pochi semplici passaggi. Eccoli:
- Installazione del server SVN sul pc condiviso per i progetti. Ho utilizzato VisualSVN server e mi è sembrato semplice, comodo e veloce. Una volta installato è un gioco da ragazzi creare un repository in una directory dedicata, creare gli utenti per l’accesso al repository ed assegnarli allo stesso. Include già apache con webdav per la consultazione via web e si autoconfigura su https.
- Installazione del plugin Ankh per Visual Studio, pienamente compatibile anche con VS2008 e – diversamente da quanto ho letto su svariati blog che lo davano come poco stabile o funzionale – molto stabile e completo.
Una volta installati i due componenti fondamentali ecco cosa bisogna fare per iniziare ad usarlo.
Avete creato il vostro progetto in Visual Studio? Bene. E’ necessario aggiungerlo all’SVN server. Tasto destro sulla soluzione del progetto, “Add Solution to subversion..”. Si apre una finestrella che chiede il nome del progetto, l’url del repository SVN, e la cartella locale con cui sincronizzare il progetto.

Qui dentro si può creare una cartella relativa al nuovo progetto che si sta creando, in modo da avere N progetti all’interno di un’unico repository.
Fatto questo sarà possibile aggiungere un commento al file di log relativo all’inserimento, che verrà poi visualizzato in futuro quando si andrà a consultare la history. A questo punto i file nel Solution Explorer appariranno con una piccola croce blu accanto ad agnuno, il che significa che è stato creato un nuovo elemento per l’SVN non ancora replicato (committato fa davvero schifo!) sul server.
Per replicare le modifiche sul server infatti in ogni momento è sufficiente scegliere l’apposito pulsante “Commit solution changes” (o Commit.. e basta sul singolo file) sempre disponibile tra le opzioni sul progetto (tasto dx…).
Da qui in avanti il progetto è caricato sul server ed è possibile lavorarci da postazioni diverse con la sicurezza che tutte le modifiche verranno tracciate e sarà sempre possibile tornare alla versione precedente. Per verificare l’avvenuto caricamento dei files senza doversi loggare sulla macchina è sufficiente controllare con il browser allo stesso indirizzo inserito per l’SNV repository.

A questo punto ci aspettiamo che gli altri sviluppatori che accedano al progetto siano costantemente aggiornati sulle modifiche riportate al progetto; per farlo dovranno aprirlo direttamente dall’SVN in modo da ottenere sempre l’ultima versione disponibile.
Una volta aperto Visual Studio si può accedere al nuovo sottomenu, presente sotto il menu File, e selezionare la voce “Subversion->Open from subversion”

Da qui si deve aggiungere l’SVN repository (lo stesso utilizzato precedentemente per il salvataggio del progetto) cliccando sull’apposito palloncino blu in alto nella finestrella, che come atteso chiederà l’autenticazione

Fatto questo saremo pronti a lavorare sul progetto effettuando tutte le modifiche desiderate. Per ogni modifica effettuata al progetto infatti i file coivolti saranno marcati in modo diverso (con una croce blu per i nuovi elementi, e con un quadrato rosso per i file modificati), segnalando la discrepanza con il repository fino al momento del commit in cui i cambiamenti saranno replicati sul server.

E cosa succede se un file viene modificato contemporaneamente da due sviluppatori?
In questo caso se non ci sono conflitti tra le modifiche, i file vengono mergiati senza problemi; viceversa se le modifiche riguardano parti di codice in comune si viene avvertiti con quello che apparentemente può sembrare un errore

e le modifiche riportate da entrambe le parti vengono segnalate con opportuni simboli e con il numero di revisione che ha causato il conflitto.

Altre cose utili che si possono fare:
Visualizzare l’history del progetto, in cui vengono segnalati i file modificati nelle diverse revision, e per ogni file è possibile visualizzare cosa è stato modificato (“view solution history”)

e trovare chi è la causa delle modifiche che hanno fatto esplodere il server su cui era in esecuzione il progetto dopo l’ultima modifica
(Sul file, Subversion-> Blame)


Questo è quanto, l’SVN è pronto e non rimane che provare a distruggere tutto!