Dimensione: 7486
Commento: corretta installazione client
|
Dimensione: 8694
Commento: inserita nota importante: distinzione fra repository svn e repository deb
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 2: | Linea 2: |
#format wiki [[BR]] ||<tablestyle="font-size: 18px; text-align:center; width:100%; background:red; margin: 0 0 0 0;" style="padding:0.5em;">'''ATTENZIONE![[BR]][[BR]]La seguente guida è in revisione.'''|| [[BR]] |
|
Linea 20: | Linea 25: |
L'operazione di '''checkout''' è la più semplice che ci possa essere ed è generalmente usata dalla maggior parte dell'utenza per ottenere copia del tree virtuale sul proprio hard disk, in modo da poterlo compilare/installare/adattare alle proprie esigenze. Per eseguire il '''checkout''' di un tree remoto è sufficiente dare un comando del tipo |
L'operazione di checkout è molto semplice da eseguire ed è generalmente usata dalla maggior parte dell'utenza per ottenere una copia del percorso contenente i sorgenti, in modo da poterlo compilare/installare/adattare alle proprie esigenze. Per eseguire il '''checkout''' di un repository remoto è sufficiente dare un comando simile al seguente: |
Linea 28: | Linea 32: |
* '''svn''' ovviamente indica il client che usiamo * '''co''' indica checkout, l'operazione da noi richiesta * '''svn://''' indica il protocollo usato * '''nomesito''' indica il dominio su cui risiede il tree (ES: ''progetto.sourceforge.net'') * '''progetto''' indicail nome del progetto che si intende scaricare. Molto spesso infatti sul medesimo dominio risiedono più progetti ed è necessario specificare la scelta. Generalmente quando si esegue il checkout si un progetto, vengono fornite informazioni esaustive sul nome corretto da inserire. * '''cartella''' indica la cartella che verrà creata nella nostra home (o all'interno della cartella in cui siamo mentre digitiamo da terminale) e in cui verrà inserito l'intero tree, mentenendo inalterata la sua struttura. |
Qui di seguito sono elencate le spiegazioni delle opzioni del comando precedente: * '''co''' l'operazione da eseguire (in questo caso, il checkout) * '''svn://''' il protocollo di rete * '''nomesito''' indirizzo del server sul quale risiede il repository dei sorgenti (i.e. ''progetto.sourceforge.net'') * '''progetto''' il nome del progetto del quale si desiderano scaricare i sorgenti. Normalmente, sullo stesso server risiedono più progetti ed è necessario specificare il nome del progetto desiderato. Generalmente quando si esegue il checkout di un progetto, vengono fornite informazioni esaustive sul nome corretto da inserire. * '''cartella''' la cartella che verrà creata all'interno della cartella corrente, nella quale verrà salvato l'intero repository, mentenendo inalterata la sua struttura. ||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''In questa guida, al termine ''repository'' viene associato il significato di ''repository SVN'', che indica il percorso remoto (o locale) contenente la struttura delle directory dei sorgenti. In questo contesto, il termine in questione non ha nulla a che fare con il significato del sinonimo ''[:Repository:repository]'', ampiamente spiegato all'interno delle guide relative alla gestione dei pacchetti software.''|| |
Linea 38: | Linea 50: |
Il metodo di checkout sopra spiegato è quello base, valido per la maggior parte dei casi. Alcune volte però il dominio su cui risiede il tree richiede protocolli differenti. E' pertanto doveroso almeno elencare quali protocolli possono essere sostituiti a svn:// * {{{svn+ssh://}}} E' il più comune successivamente a svn semplice e si differenzia da quest'ultimo per il suo passare attraverso il protocollo ssh. * {{{http://}}} Prevedere la connessione diretta al server mediante il protocollo WebDAV * {{{https://}}} Come http, ma mediante connessione sicura * {{{file://}}} Prevede l'accesso ad un tree sul proprio pc = Creare un repository svn in locale = La spiegazione che segue spiega come creare un proprio tree sul computer locale. In realtà può essere utilizzato anche per crearne uno in remoto, purchè si abbia accesso mediante '''ssh''' al dominio. |
Il metodo di checkout sopra spiegato è quello base, valido per la maggior parte dei casi. Alcune volte però il dominio su cui risiede il repository richiede protocolli differenti. Quello che segue è un elenco dei protocolli più comuni: ||<:25%>'''Protocollo'''||<:>'''Descrizione'''|| || svn+ssh:// || È il più comune dopo SVN, si differenzia da quest'ultimo per l'uso del protocollo di connessione sicura [:SSHHowto:SSH] || || http``:// || Prevede la connessione diretta al server mediante il protocollo WebDAV || || https``:// || Come HTTP, ma mediante connessione sicura || || file``:// || Prevede l'accesso ad un repository locale || = Creare un repository SVN in locale = La spiegazione che segue spiega come creare un repository locale sul proprio computer. In realtà può essere utilizzato anche per crearne uno in remoto, purchè si abbia accesso mediante '''ssh''' al dominio ospite. |
Linea 51: | Linea 64: |
Prima di tutto creiamo il '''nuovo gruppo''' (nell'esempio sarà chiamato ''subversion'') che avrà accesso alla cartella ed assegnamo il nostro utente e quello di '''apache''' (chiamato ''www-data'') a questo gruppo. | Prima di tutto è necessario creare un nuovo gruppo utente (nell'esempio sarà chiamato ''subversion'') che avrà accesso alla cartella dei sorgenti, dunque si dovrà assegnargli l'utente attuale e l'utente di '''apache''' (chiamato ''www-data''). Aprire una finestra di terminale e digitare: |
Linea 59: | Linea 73: |
dove ovviamente '''nomeutente''' deve essere sostituito con il vostro nome utente | ||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Con la dicitura'' nomeutente'' si vuole indicare il nome dell'utente che si desidera aggiungere al gruppo ''subversion''. Sostituire tale espressione con il proprio nome utente.''|| |
Subversion è un sistema alternativo a [:Cvs: CVS] che svolge la medesima funzione di controllo di versione. Questa operazione consiste nel poter consultare, scaricare, aggiornare sorgenti di programmi salvati in remoto su un server web. In Ubuntu questa tecnologia è sfruttata mediante il client testuale svn.
Installazione client
L'installazione del client è un passo banale: si può ottenere, nomchè installare il pacchetto svn tramite la [:RigaDiComando:riga di comando] con [:AptGetHowTo:Apt] oppure per via grafica mediante [:SynapticHowto:Synaptic] o [:AdeptHowTo:Adept].
Per installare il pacchetto con apt-get da riga di comando è sufficiente digitare:
sudo apt-get install subversion
Il Checkout
L'operazione di checkout è molto semplice da eseguire ed è generalmente usata dalla maggior parte dell'utenza per ottenere una copia del percorso contenente i sorgenti, in modo da poterlo compilare/installare/adattare alle proprie esigenze.
Per eseguire il checkout di un repository remoto è sufficiente dare un comando simile al seguente:
svn co svn://nomesito/progetto cartella
Qui di seguito sono elencate le spiegazioni delle opzioni del comando precedente:
co l'operazione da eseguire (in questo caso, il checkout)
svn:// il protocollo di rete
nomesito indirizzo del server sul quale risiede il repository dei sorgenti (i.e. progetto.sourceforge.net)
progetto il nome del progetto del quale si desiderano scaricare i sorgenti. Normalmente, sullo stesso server risiedono
più progetti ed è necessario specificare il nome del progetto desiderato. Generalmente quando si esegue il checkout di un progetto, vengono fornite informazioni esaustive sul nome corretto da inserire.
cartella la cartella che verrà creata all'interno della cartella corrente, nella quale verrà salvato l'intero repository, mentenendo inalterata la sua struttura.
In questa guida, al termine repository viene associato il significato di repository SVN, che indica il percorso remoto (o locale) contenente la struttura delle directory dei sorgenti. In questo contesto, il termine in questione non ha nulla a che fare con il significato del sinonimo [:Repository:repository], ampiamente spiegato all'interno delle guide relative alla gestione dei pacchetti software. |
Altri protocolli di accesso
Il metodo di checkout sopra spiegato è quello base, valido per la maggior parte dei casi. Alcune volte però il dominio su cui risiede il repository richiede protocolli differenti. Quello che segue è un elenco dei protocolli più comuni:
Protocollo |
Descrizione |
svn+ssh:// |
È il più comune dopo SVN, si differenzia da quest'ultimo per l'uso del protocollo di connessione sicura [:SSHHowto:SSH] |
http:// |
Prevede la connessione diretta al server mediante il protocollo WebDAV |
https:// |
Come HTTP, ma mediante connessione sicura |
file:// |
Prevede l'accesso ad un repository locale |
Creare un repository SVN in locale
La spiegazione che segue spiega come creare un repository locale sul proprio computer. In realtà può essere utilizzato anche per crearne uno in remoto, purchè si abbia accesso mediante ssh al dominio ospite.
Creazione gruppo e utenti
Prima di tutto è necessario creare un nuovo gruppo utente (nell'esempio sarà chiamato subversion) che avrà accesso alla cartella dei sorgenti, dunque si dovrà assegnargli l'utente attuale e l'utente di apache (chiamato www-data).
Aprire una finestra di terminale e digitare:
sudo addgroup subversion sudo adduser nomeutente subversion sudo adduser www-data subversion
Con la dicitura nomeutente si vuole indicare il nome dell'utente che si desidera aggiungere al gruppo subversion. Sostituire tale espressione con il proprio nome utente. |
Creazione cartelle
Pur non essendo una regola, è generalmente preferibile porre la cartella svn (che conterrà tutti i progetti correlati) nella /home del sistema.
sudo mkdir /home/svn
E' poi necessario creare la sottocartella per il nostro primo progetto, che nell'esempio chiameremo, appunto, progetto ed impostarle come proprietario il gruppo creato.
sudo mkdir /home/svn/progetto sudo chown -R root:subversion progetto sudo chmod -R g+rws myproject
Creazione del repository locale
L'ultima operazione necessaria è quella di 'avviare' il repository, dando semplicemente il comando
sudo svnadmin create /home/svn/myproject
Creazione di un repository remoto
Per creare un tree remoto dobbiamo usare il comando import con la seguente sinstassi
svn import svn://dominio/cartella --username=nomeutente cartellalocale
Assumendo
import è la funzione che usiamo, ovvero il comando per iniziare un nuovo repository
svn è sempre il protocollo ed è soggetto a cambiamenti come descritto [#protocolli qui]
dominio è sempre l'indirizzo del nostro server remoto
catella è il nome della cartella svn che contiene i progetti remoti
nomeutente è il nome dell'utente che ha i permessi in remoto
cartellalocale indica la posizione assoluta della cartella che vogliamo importare nel nostro tree iniziale
La password verrà chiesta automaticamente
Altre operazioni
Aggiunta di un file o di una cartella ad un tree remoto
L'operazione di aggiunta di un file ad un tree remoto è piùttosto semplice e sfrutta il comando 'add' con la sintassi
svn add file svn://dominio/cartellaremota svn add cartellalocale svn://dominio/cartellaremota
Ovviamente assieme alla cartella locale vengono inseriti anche tutti i files in essa contenuti
Autenticazione
E' giusto spendere una nota di merito a favore di svn in quanto l'autenticazione ad un server (ad esempio per modificare, aggiungere files ecc) può non dover essere fatta aggiungento parametri, bensì viene richiesta direttamente solo in caso di necessità (se ovviamente il server è configurato per supportare tale procedura).
Ad esempio un comando generico
svn [comando] [opzioni]
Restituirà in caso di necessità (se per esempio sono necessari permessi di scrittura
Username: Password for 'nomeinserito':
Così da facilitare l'uso.
Nel caso in cui il server non sia stato configurato per garantire questo processo è possibile usare comunque la sintassi
svn [comando] [opzioni] --username nome --password pass
Dove ovviamente nome e pass vanno sistituiti con i relativi valori
Copiare files e cartelle
Per spostare sia files che cartelle si usa il comando copy.
svn copy file1 file2 svn copy file1 cartella/file1 svn copy cartella1 cartella2 svn copy cartella1 cartella2/cartella1
Rimuovere un file o una cartella
Si possono rimuovere file e cartelle (ricorsivamente) mediante il comando rm
svn rm file svn rm cartella
Sfogliare un tree remoto
Si può sfogliare un repository per sapere cosa contiente senza fare il checkout utilizzando il comando list
svn list svn://dominio/cartellaremota
Spostare files e cartelle
Per spostare sia files che cartelle si usa il comando move.
svn move file1 file2 svn move file1 cartella/file1 svn move cartella1 cartella2 svn move cartella1 cartella2/cartella1