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.1tvy96mehwatz7eq34j4lot7fhicckl7
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.1v35s2n1x5rzdsy41c0e0hy14nxopq70
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..2wzj8byewt75rvk3f9ougphi6sbi0r4s
Ma..3 torniamo a noi: il metodo più veloce e utile che ho trovato consiste in pochi semplici passaggi. Eccoli:2arg2c2yuvoatysz617u8z3kbaecojt9
- 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.3njdwd6itw5gv11wxuqtz9pmgrh6dcjq
- 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.3zv3itfztpkm06e5idyfx7t8xbd1plcx
Una volta installati i due componenti fondamentali ecco cosa bisogna fare per iniziare ad usarlo.4pkkpmcpr42sp8a0m1d0zjiu645ur4w4
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.43q9l96i7qjxqthbx4qupdr8zla6j1bn
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.4tsiuptinq13edcll409qa28we4hpqlw
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.57x8qcnc3ci8fxjww7d3f5bmpv9sgn1f
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…).5m3ym0g5jy0eghr87bqx50j1ice48kgy
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.6y5acr55ivgkjl2bvhl804wdbudyq2qa
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.6cx75r9pgxxploa7m958reiegcgsfvgr
Una volta aperto Visual Studio si può accedere al nuovo sottomenu, presente sotto il menu File, e selezionare la voce “Subversion->Open from subversion”619ubxh6xsevb97n7mqyv5lo1574e99w
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’autenticazione73h1tthtd0v1our04u78ayqiqbmgsfvp
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.7t6h0lejbfc6ewnv9inscaf4z4e9uzew
E cosa succede se un file viene modificato contemporaneamente da due sviluppatori?8vsgl55f98ucqz6nq1ywpo7bc9w3bars
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 errore8yeg5ovc71bh21pg7l9122zhpedwrk3o
e le modifiche riportate da entrambe le parti vengono segnalate con opportuni simboli e con il numero di revisione che ha causato il conflitto.9b6dzpzw53sn44ycydt1ubljuvgqgdt5
Altre cose utili che si possono fare:928m84mwl2assosmmc2fu8xiroa1l12e
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”)9sx2gwkmjhsyhqogr0hzxkm40h2vokmk
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)a5pz9xo5hj94jtxdis0zou865y5ocdb1
Questo è quanto, l’SVN è pronto e non rimane che provare a distruggere tutto!
a7y6stosysq9xehrf1i93nd0u4l0qjyv
- non è vero, il motivo non è solo quello [↩]bxnmzlmjw77fmgdlkoxu5z2m3xdus2h1
-
[↩]bnc26dj9umokbj9gocce7br9cq5nvm08 - Come dice il mio caro collega… [↩]b2vl4o2css6qblf6irk2vrm0t7chqo6t
- Commenti risalenti a svariati mesi fa per cui probabilmente relativi a versioni vecchie [↩]cfniyp6vqunvcno3ak32n182yofaegwa
(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!










