nov
04(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.70f9cb4x7n2zmmmohzn798nn8spbrtn1
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.7ph4a4jtxyt14e7u41u445sun0sz4avt
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 righe1 sicuro del fatto che torneranno buone anche ad altri2 e mi aiuteranno a superare le mie simpatiche amnesie..7q4pj31n52k4boijln2rbjc9hlh5td78
Ma..3 torniamo a noi: il metodo più veloce e utile che ho trovato consiste in pochi semplici passaggi. Eccoli:7r33uo9qurb7ggrmmk58hjk1059slk8p
- 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.849ffqvglo1ac9puwqgl1eloa2mglamr
- 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 funzionale4 – molto stabile e completo.8g2yx6rxt1rd7kpnnlw4mp0yxzymhubr
Una volta installati i due componenti fondamentali ecco cosa bisogna fare per iniziare ad usarlo.8uyvmjs6j3if1blp0ev53qaajveant6x
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.8wa2zrqjqcai5kt7knrh7b4fqf8fi6xh
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.8m3i1vkzfs2kmbc7bbm4zehcgne22wld
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.8ogpe3icn0tnrlkpvkjf3ybhm677x9dx
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…).91zt1tucuikplvhcp1nnlfzgk3md03h1
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.9e55mvf2lgbsgngkz8y05a03vzz1zsw3
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.9ro98lr2tx1vaxd6tp27oro2twe72m07
Una volta aperto Visual Studio si può accedere al nuovo sottomenu, presente sotto il menu File, e selezionare la voce “Subversion->Open from subversion”96xzzlil0ktx268nqtv33dks4rxcbqlh
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’autenticazione98a6ctgy7sl07fg5a2sf7yewabqh63d0
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.a99kneo1xhc3c7p9bzuxdxlosvi4yaeh
E cosa succede se un file viene modificato contemporaneamente da due sviluppatori?aojaeefk43454gkp83ntsjie2r097ezq
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 erroreaecqgi90tjw7l73pzshfjnwbty6xr4nn
e le modifiche riportate da entrambe le parti vengono segnalate con opportuni simboli e con il numero di revisione che ha causato il conflitto.a456im4giyna1ynopgc1bq98j6ckbvbj
Altre cose utili che si possono fare:avxnkqyw7efcip6og57n2um59ei7vlzf
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”)bvk8togqfi6fp0gdxrfaa87k4y8djobu
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)bwt10z9962wiwtsnu1u3j25majw15mw7
Questo è quanto, l’SVN è pronto e non rimane che provare a distruggere tutto!
b8zcl2v0w0mlrlqu485g3x68lg9p5ba9
- non è vero, il motivo non è solo quello [↩]byf0ljz64vdo9vbfbl57wfxtnodumx83
-
[↩]b0eew479tj4qenkjci8p2f4k595id4ak - Come dice il mio caro collega… [↩]cdablh9jjlwt7egkpb6qjgfxs5l5j34r
- Commenti risalenti a svariati mesi fa per cui probabilmente relativi a versioni vecchie [↩]cr789tas8nnv16cm345szip9e02sp2zx
(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 righe1 sicuro del fatto che torneranno buone anche ad altri2 e mi aiuteranno a superare le mie simpatiche amnesie..
Ma..3 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 funzionale4 – 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!










