SVNBOOK Chap2 Initial Checkout

Un article de Framalang Wiki.

Jump to: navigation, search

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

Initial Checkout
Extraction initiale

[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.
--Penguin 13 février 2008 à 10:15 (CET): Je n'ai pour l'instant pas de version française sur mon poste, je ne garantit pas que le message ci-dessus soit correct.

[modifier] Paragraphe 2

What's in a Name?
Qu'y a-t-il dans un Nom?
Subversion tries hard not to limit the type of data you can place under version control. The contents of files and property values are stored and transmitted as binary data, and the section called “File Content Type” tells you how to give Subversion a hint that “textual” operations don't make sense for a particular file. There are a few places, however, where Subversion places restrictions on information it stores.
Subversion essaie au maximum de ne pas limiter le type de données que vous placez sous gestion de versions. Le contenu des fichiers et les valeurs des propriétés sont stockés et transmis en tant que données binaires, la section appelée "Type du contenu des fichiers" vous indique comment indiquer à Subversion que des opérations "textuelles" n'ont pas de sens pour un fichier particulier. Il existe toutefois quelques cas pour lesquels Subversion définit des limitations sur les informations qu'il stocke.
Subversion internally handles certain bits of data—for example, property names, path names, and log messages—as UTF-8 encoded Unicode. This is not to say that all your interactions with Subversion must involve UTF-8, though. As a general rule, Subversion clients will gracefully and transparently handle conversions between UTF-8 and the encoding system in use on your computer, if such a conversion can meaningfully be done (which is the case for most common encodings in use today).
Subversion gère en interne certains bits de données - par exemple les noms des propriétés, les chemins, et les messages de trace - au format Unicode UTF-8. Cela ne veut toutefois pas dire que toutes vos interactions avec Subversion doivent faire intervenir l'UTF-8. En règle générale, les clients Subversion vont gérer de façon transparente les conversions entre l'UTF-8 et le système d'encodage utilisé par votre ordinateur, si cela a un sens de faire une telle conversion (ce qui est le cas pour les encodages les plus courants utilisés de nos jours.
In addition, path names are used as XML attribute values in WebDAV exchanges, as well in as some of Subversion's housekeeping files. This means that path names can only contain legal XML (1.0) characters. Subversion also prohibits TAB, CR, and LF characters in path names to prevent paths from being broken up in diffs, or in the output of commands like svn log or svn status.
De plus, les chemins sont utilisés en tant que valeurs d'attribut XML dans les échanges WebDAV, ainsi que dans certains fichiers de gestion interne de Subversion. Cela veut dire que les chemins ne peuvent contenir que des caractères XML (1.0) valides. Subversion interdit également les caractères TAB (tabulation), CR et LF (caractères pour les retours à la ligne) dans les chemins pour empêcher les chemins d'être coupé en deux lors des 'diff' ou dans les sorties de commandes comme svn log ou svn status.


While it may seem like a lot to remember, in practice these limitations are rarely a problem. As long as your locale settings are compatible with UTF-8, and you don't use control characters in path names, you should have no trouble communicating with Subversion. The command-line client adds an extra bit of help—it will automatically escape illegal path characters as needed in URLs you type to create “legally correct” versions for internal use.
Bien qu'on ait l'impression qu'il y a beaucoup à se rappeler, en pratique, ces limitations sont rarement un problème. Tant que vos paramètres locaux sont compatibles avec UTF-8, et que vous n'utilisez pas de caractères de contrôle dans les chemins, vous ne devriez pas avoir de problème pour communiquer avec Subversion. Le client en ligne de commande ajoute un peu d'aide,- il va automatiquement transformer les caractères illégaux pour les chemins d'URL que vous tapez, pour créer des versions "correctes légalement" pour un usage interne.

[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

To disable password caching for a particular one-time command, pass the --no-auth-cache option on the commandline. To permanently disable caching, you can add the line store-passwords = no to your local machine's Subversion configuration file. See the section called “Client Credentials Caching” for details.
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 nommée "Mise en cache des éléments d'authentification du client" pour plus de détails.

[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.
--Penguin 13 février 2008 à 14:58 (CET): Je ne suis pas sûr de la traduction de "a webserver document root" : un document racine de serveur web .

[modifier] Paragraphe 10

[3] Of course, you're not terribly worried—first because you know that you can't really delete anything from Subversion and, secondly, because your Subversion password isn't the same as any of the other three million passwords you have, right? Right?
[3] Bien entendu, vous n'êtes pas horriblement inquiet, d'abord parce que vous savez que vous ne pouvez rien supprimer réellement de Subversion, et ensuite parce que votre mot de passe Subversion est différent des trois millions d'autres mots que vous avez, n'est-ce pas ? N'est-ce pas ?