Checkout iniziale

Most of the time, you will start using a Subversion repository by doing a checkout of your project. Checking out a repository creates a copy of it on your local machine. This copy contains the HEAD (latest revision) of the Subversion repository that you specify on the command line:

La maggior parte delle volte si inizierà ad utilizzare un repository Subversion, effettuando un checkout di un determinato progetto. Il checkout crea una copia sulla macchina locale di un repository. Questa copia contiene la HEAD (ultima versione) del repository di Subversion che abbiamo specificato dalla linea di comando:

$ svn checkout http://svn.collab.net/repos/svn/trunk
A  trunk/subversion.dsw
A  trunk/svn_check.dsp
A  trunk/COMMITTERS
A  trunk/configure.in
A  trunk/IDEAS
…
Checked out revision 2499.

Although the above example checks out the trunk directory, you can just as easily check out any deep subdirectory of a repository by specifying the subdirectory in the checkout URL:

Sebbene l'esempio sopra effettui un ckeckout della directory trunk, si può semplicemente effettuare il chekout di una qualunque sottodirectory di un repository specificando la sottodirectory nell'URL

$ svn checkout http://svn.collab.net/repos/svn/trunk/doc/book/tools
A  tools/readme-dblite.html
A  tools/fo-stylesheet.xsl
A  tools/svnbook.el
A  tools/dtd
A  tools/dtd/dblite.dtd
…
Checked out revision 2499.

Since Subversion uses a copy-modify-merge model instead of lock-modify-unlock (see Capitolo 2, Concetti base), you're already able to start making changes to the files and directories in your working copy. Your working copy is just like any other collection of files and directories on your system. You can edit and change them, move them around, you can even delete the entire working copy and forget about it.

Dal momento che Subversion utilizza un modello «copy-modify-merge» invece di uno «lock-modify-unlock» (see Capitolo 2, Concetti base), possiamo direttamente effettuare cambiamenti sui file e le directory della nostra copia di lavoro. La nostra copia di lavoro è semplicemente come ogni altro file e directory sul nostro sistema. Si possono modificare e spostare, si può anche cancellare l'intera copia di lavoro e dimenticarsi completamente della sua esistenza.

[Nota] Nota

While your working copy is just like any other collection of files and directories on your system, you need to let Subversion know if you're going to be rearranging anything inside of your working copy. If you want to copy or move an item in a working copy, you should use svn copy or svn move instead of the copy and move commands provided by your operating system. We'll talk more about them later in this chapter.

Mentre la nostra copia di lavoro «è come ogni altro insieme di file e directory sul nostro sistema», dobbiamo far sapere a Subversion se stiamo ridisponendo qualcosa all'interno della copia di lavoro. Se volessimo spostare o copiare un elemento facente parte della copia di lavoro, dovremmo utilizzare svn copy oppure svn move invece dei rispettivi comandi forniti dal sistema operativo da noi utlizzato. Se ne parlerà in modo più approfondito più avanti nel capitolo.

Unless you're ready to commit a new file or directory, or changes to existing ones, there's no need to further notify the Subversion server that you've done anything.

A meno che non dobbiamo fare una commit di un nuovo file o di una nuova directory, oppure dei cambiamenti effettuati su un file esistente, non è necessario notificare ulteriormente il server Subversion che si sia fatto qualcosa.

While you can certainly check out a working copy with the URL of the repository as the only argument, you can also specify a directory after your repository URL. This places your working copy in the new directory that you name. For example:

Mentre si può certamente effettuare un ckeckout di una copia di lavoro con l'URL del repository come unico argomento, si può anche specificare una directory dopo l'URL del repository. Questo posiziona la copia di lavoro nella directory con quel nome. Ad esempio:

$ svn checkout http://svn.collab.net/repos/svn/trunk subv
A  subv/subversion.dsw
A  subv/svn_check.dsp
A  subv/COMMITTERS
A  subv/configure.in
A  subv/IDEAS
…
Checked out revision 2499.

That will place your working copy in a directory named subv instead of a directory named trunk as we did previously.

Questo posizionerà la nostra working copy nella directory subv invece che nella directory trunk come era accaduto precedentemente.