SVNBOOK Chap2 Initial Checkout
Un article de Framalang Wiki.
Cette page fait partie du projet Version control with subversion.
| Pseudo | Code | Rôle | Statut |
|---|---|---|---|
| Penguin | Traduction | En Cours | |
| Hotshot92 | Relecture | Terminé | |
| Validation |
Sommaire |
[modifier] Titre
[modifier] Paragraphe 1
Most of the time, you will start using a Subversion repository by doing a checkout of your project. Checking out a repository creates a “working 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:
$ svn checkout http://svn.collab.net/repos/svn/trunk A trunk/Makefile.in A trunk/ac-helpers A trunk/ac-helpers/install.sh A trunk/ac-helpers/install-sh A trunk/build.conf … Checked out revision 8810.
En général, on commence à utiliser un dépôt Subversion en extrayant ( checkout ) votre projet. Extraire un projet d'un dépôt crée sur votre ordinateur une "copie de travail" de ce projet. Cette copie contient la version "HEAD" ( la dernière version ) du dépôt que vous indiquez dans la ligne de commande :
$ svn checkout http://svn.collab.net/repos/svn/trunk A trunk/Makefile.in A trunk/ac-helpers A trunk/ac-helpers/install.sh A trunk/ac-helpers/install-sh A trunk/build.conf … Checked out revision 8810.
[modifier] Paragraphe 2
[modifier] Paragraphe 3
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:
$ svn checkout \
http://svn.collab.net/repos/svn/trunk/subversion/tests/cmdline/
A cmdline/revert_tests.py
A cmdline/diff_tests.py
A cmdline/autoprop_tests.py
A cmdline/xmltests
A cmdline/xmltests/svn-test.sh
…
Checked out revision 8810.
Alors que l'exemple précédent extrayait le répertoire de base "trunk", vous pouvez tout aussi facilement extraire un sous-répertoire à n'importe quelle profondeur du dépôt en spécifiant le sous-répertoire dans l'URL d'extraction:
$ svn checkout \
http://svn.collab.net/repos/svn/trunk/subversion/tests/cmdline/
A cmdline/revert_tests.py
A cmdline/diff_tests.py
A cmdline/autoprop_tests.py
A cmdline/xmltests
A cmdline/xmltests/svn-test.sh
…
Checked out revision 8810.
[modifier] Paragraphe 4
Since Subversion uses a “copy-modify-merge” model instead of “lock-modify-unlock” (see the section called “Versioning Models”), you can start right in 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.
Comme Subversion utilise le modèle "Copier-Modifier-Fusionner" à la place du modèle "Verrouiller-Modifier-Libérer" (voir la section "Modèles de versionnement") , vous pouvez commencez tout de suite à modifier les fichiers et les répertoires de votre copie de travail. Votre copie de travail n'est qu'une collection de fichiers et de répertoires comme les autres dans votre système. Vous pouvez les éditer et les modifier, les déplacer, vous pouvez même supprimer toute votre copie de travail et l'oublier.
Warning
While your working copy is “just like any other collection of files and directories on your system”, you can edit files at will, but you must tell Subversion about everything else that you do. For example, 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.
Avertissement
Alors que votre copie de travail "n'est qu'une collection de fichiers et de répertoires comme les autres dans votre système", vous pouvez éditer vos fichiers comme vous le voulez, mais vous devez dire à Subversion tout ce que vous faites d'autre. Par exemple, si vous voulez copier ou déplacer un élément dans votre copie de travail, vous devez utiliser svn copy ou svn move à la place des commandes de copie ou de déplacement fournies par votre système d'exploitation. Nous aborderons plus en détail ces commandes plus tard dans ce chapitre.
Unless you're ready to commit the addition of 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 moins que vous ne soyez prêt pour envoyer (commit) l'ajout d'un nouveau fichier ou d'un nouveau répertoire, ou la modification d'un existant, il n'est pas nécessaire d'informer davantage le serveur Subversion que vous avez fait quelque chose.
[modifier] Paragraphe 5
What's with the .svn directory?
Every directory in a working copy contains an administrative area, a subdirectory named .svn. Usually, directory listing commands won't show this subdirectory, but it is nevertheless an important directory. Whatever you do, don't delete or change anything in the administrative area! Subversion depends on it to manage your working copy.
If you accidentally remove the .svn subdirectory, the easiest way to fix the problem is to remove the entire containing directory (a normal system deletion, not svn delete), then run svn update from a parent directory. The Subversion client will re-download the directory you've deleted, with a new .svn area as well.C'est quoi ce répertoire .svn?
Chaque répertoire dans une copie de travail contient une zone administrative, un sous-répertoire nommé .svn. Habituellement, la commande d'affichage de la liste des répertoires ne fera pas apparaître ce sous-répertoire, il s'agit tout de même d'un répertoire important. Quoique vous fassiez, ne supprimez ni ne changez rien dans la zone administrative! Subversion dépend d'elle pour gérer votre copie de travail.
Si vous supprimez accidentellement votre sous-répertoire .svn, la façon la plus facile de réparer le problème est de supprimer entièrement le répertoire qui le contient (une suppression classique du système, pas un appel à svn delete), puis d'effectuer un svn update depuis un répertoire parent. Le client Subversion re-chargera alors le répertoire que vous avez supprimé, qui contiendra aussi une nouvelle zone .svn.[modifier] Paragraphe 6
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:
$ svn checkout http://svn.collab.net/repos/svn/trunk subv A subv/Makefile.in A subv/ac-helpers A subv/ac-helpers/install.sh A subv/ac-helpers/install-sh A subv/build.conf … Checked out revision 8810.
That will place your working copy in a directory named subv instead of a directory named trunk as we did previously. The directory subv will be created if it doesn't already exist.
Certes, vous pouvez extraire une copie de travail avec l'URL du dépôt comme seul argument, mais vous pouvez également spécifier un répertoire après l'URL du dépôt. Cela placera votre copie de travail dans le nouveau répertoire que vous avez nommé. Par exemple:
$ svn checkout http://svn.collab.net/repos/svn/trunk subv A subv/Makefile.in A subv/ac-helpers A subv/ac-helpers/install.sh A subv/ac-helpers/install-sh A subv/build.conf … Checked out revision 8810.Cela placera votre copie de travail dans le répertoire subv au lieu du répertoire nommé trunk comme nous l'avions fait précédemment. Ce répertoire subv sera créé s'il n'existait pas auparavant.
[modifier] Paragraphe 7
Disabling Password Caching
When you perform a Subversion operation that requires you to authenticate, by default Subversion caches your authentication credentials on disk. This is done for convenience, so that you don't have to continually re-enter your password for future operations. If you're concerned about caching your Subversion passwords,[3] you can disable caching either permanently or on a case-by-case basis.Désactiver la mise en cache du mot de passe
Lorsque vous réalisez une opération Subversion qui nécessite une authentification, Subversion met par défaut en cache sur le disque vos éléments d'authentification. Cela est fait par commodité, vous n'êtes ainsi pas obligé de ré-entrer constamment votre mot de passe pour les opérations suivantes. Si la mise en cache des mots de passe Subversion vous dérange, [3] vous pouvez désactiver la mise en cache de façon permanente ou au cas par cas.[modifier] Paragraphe 8
[modifier] Paragraphe 9
Authenticating as a Different User
Since Subversion caches auth credentials by default (both username and password), it conveniently remembers who you were acting as the last time you modified you working copy. But sometimes that's not helpful—particularly if you're working in a shared working copy, like a system configuration directory or a webserver document root. In this case, just pass the --username option on the commandline and Subversion will attempt to authenticate as that user, prompting you for a password if necessary.S'authentifier comme un autre utilisateur
Puisque Subversion met en cache par défaut les éléments d'authentification (à la fois le nom d'utilisateur et le mot de passe), il se souvient commodément de qui vous étiez la dernière fois que vous avez modifié votre copie de travail. Mais parfois, cela n'aide pas, en particulier si vous travaillez sur une copie de travail partagée, comme un répertoire de configuration système, ou un document racine de serveur web. Dans ce cas, il suffit de passer l'option --username à la ligne de commande et Subversion essaiera de vous authentifier en tant que cet utilisateur, vous demandant votre mot de passe si nécessaire.
