Extraction initiale

En général, vous commencerez à utiliser un dépôt Subversion en faisant une extraction (« checkout » en anglais) de 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 révision) du dépôt que vous indiquez dans la ligne de commande :

$ svn checkout http://svn.apache.org/repos/asf/subversion/
A    subversion/trunk
A    subversion/trunk/NOTICE
A    subversion/trunk/LICENSE
A    subversion/trunk/Makefile.in
A    subversion/trunk/build.conf
…
Révision 8810 extraite.

Alors que l'exemple précédent extrait le répertoire de base trunk, vous pouvez tout aussi facilement extraire un sous-répertoire situé à n'importe quelle profondeur dans le dépôt en spécifiant le sous-répertoire dans l'URL d'extraction :

$ svn checkout \
      http://svn.apache.org/repos/asf/subversion/trunk/subversion/tests/cmdline/
A    cmdline/cat_tests.py
A    cmdline/revert_tests.py
A    cmdline/entries_tests.py
A    cmdline/svneditor.bat
A    cmdline/import_tests.py
…
Révision 8810 extraite.

Comme Subversion utilise le modèle copier-modifier-fusionner à la place du modèle verrouiller-modifier-libérer (voir la section intitulée « Modèles de gestion de versions »), vous pouvez commencer immédiatement à modifier les fichiers et les répertoires de votre copie de travail. Votre copie de travail n'est qu'un ensemble de fichiers et de répertoires comme les autres dans votre système. Vous pouvez y éditer des fichiers, la modifier, la déplacer, vous pouvez même supprimer toute votre copie de travail et l'oublier définitivement.

[Avertissement] Avertissement

Bien que votre copie de travail « n'est qu'un ensemble 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 signaler à Subversion toutes vos autres opérations. 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 loin dans ce chapitre.

À moins que vous ne soyez prêt à propager l'ajout d'un nouveau fichier ou d'un nouveau répertoire ou la modification d'un fichier ou répertoire existant, il n'est pas nécessaire d'informer davantage le serveur Subversion que vous avez fait quelque chose.

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 place votre copie de travail dans le nouveau répertoire indiqué. Par exemple :

$  svn checkout http://svn.apache.org/repos/asf/subversion/trunk subv
A    subv/NOTICE
A    subv/LICENSE
A    subv/Makefile.in
A    subv/build.conf
…
Révision 8810 extraite.

Ceci place votre copie de travail dans un répertoire nommé subv au lieu d'un répertoire nommé trunk comme nous l'avions fait précédemment. Le répertoire subv est créé s'il n'existait pas auparavant.

Interdiction de 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. Il fait cela par commodité, pour que vous ne soyez 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[4], vous pouvez désactiver la mise en cache de façon permanente ou au cas par cas.

Pour désactiver la mise en cache du mot de passe pour un appel donné d'une commande particulière, passez l'option --no-auth-cache sur la ligne de commande. Pour désactiver de façon permanente la mise en cache, vous pouvez ajouter la ligne store-passwords = no à votre fichier de configuration Subversion sur votre machine locale. Voir la section intitulée « Mise en cache des éléments d'authentification du client » pour plus de détails.

Authentification sous un autre nom

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 par exemple un répertoire de configuration système, ou le répertoire racine des documents d'un serveur Web. Dans ce cas, il suffit de passer l'option --username à la ligne de commande et Subversion essaie alors de vous authentifier en tant que cet utilisateur, vous demandant votre mot de passe si nécessaire.



[4] Bien sûr, cela ne vous inquiète pas outre mesure : d'abord parce que vous savez qu'on ne peut jamais rien effacer réellement avec Subversion, et ensuite parce que votre mot de passe Subversion n'est pas le même que les trois millions d'autres mots de passe que vous avez déjà, pas vrai ? Pas vrai ?