Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Programmazione/Subversion"
Differenze tra le versioni 1 e 3 (in 2 versioni)
Versione 1 del 15/02/2007 20.47.49
Dimensione: 2389
Commento: Prima stesura, solo una parte svolta. Ancora da completare.
Versione 3 del 15/02/2007 22.46.43
Dimensione: 7417
Commento: La pagina è completata, necessita però di controllo.
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 2: Linea 2:
||<tablebgcolor="red" tablewidth="100%" tablestyle="margin: 0pt; font-size: 18px; text-align: center;"style="padding: 0.5em;">'''ATTENZIONE: Questa pagina è in fase di creazione...''' ||
Linea 22: Linea 21:
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. 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.
Linea 24: Linea 23:
Per eseguire il checkout di un tree remoto è sufficiente dare un comando del tipo Per eseguire il '''checkout''' di un tree remoto è sufficiente dare un comando del tipo
Linea 30: Linea 29:
 * '''svn''' ovviamente indica  * '''svn''' ovviamente indica il client che usiamo
Linea 37: Linea 36:
[[Anchor(protocolli)]]
== 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 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.

== Creazione gruppo e utenti ==

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.

{{{
sudo addgroup subversion
sudo adduser nomeutente subversion
sudo adduser www-data subversion
}}}

dove ovviamente '''nomeutente''' deve essere sostituito con il vostro 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
Linea 39: Linea 106:
= Altre operazioni =
Linea 41: Linea 109:
= Titolo 1 = == Aggiunta di un file o di una cartella ad un tree remoto ==
Linea 43: Linea 111:
testo L'operazione di aggiunta di un file ad un tree remoto è piùttosto semplice e sfrutta il comando 'add' con la sintassi
Linea 45: Linea 113:
== Titolo 2 == {{{
svn add file svn://dominio/cartellaremota
svn add cartellalocale svn://dominio/cartellaremota
}}}
Linea 47: Linea 118:
testo Ovviamente assieme alla cartella locale vengono inseriti anche tutti i files in essa contenuti
Linea 49: Linea 120:
=== Titolo 3 ===
Linea 51: Linea 121:
testo == 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
}}}

= Fonti =

 * http://svn.collab.net/repos/svn/trunk/doc/user/cvs-crossover-guide.html
 * https://help.ubuntu.com/community/Subversion
 * http://svnbook.red-bean.com/en/1.0/ch06s02.html

BR

Introduzione

Subversion è un sistema alternativo a [:CVS: cvs] che svolge la medesima funzione di controllo di versione. Questa operazione, meglio descritta nella pagina dedicata a [:CVS: cvs], 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, ottenibile mediante l'acquisizione mediante apt del pacchetto svn. E' possibile farlo sia in via grafica (mediante synaptic) sia in via testuale mediante apt.

sudo apt-get install svn

Il Checkout

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

svn co svn://nomesito/progetto cartella
  • 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.

Anchor(protocolli)

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 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.

Creazione gruppo e utenti

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.

sudo addgroup subversion
sudo adduser nomeutente subversion
sudo adduser www-data subversion

dove ovviamente nomeutente deve essere sostituito con il vostro 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

Fonti


CategoryNuoviDocumenti