Pour utiliser le client en ligne de commande, tapez svn puis la sous-commande que vous souhaitez utiliser[58] et toutes les options ou cibles que vous souhaitez traiter — la sous-commande et les options dosivent être indiquées dans un ordre bien particulier. Par exemple, voici quelques commandes valides utilisant svn status :
$ svn -v status $ svn status -v $ svn status -v mon-fichier
Vous trouverez beaucoup d'autres exemples relatifs aux commandes du client dans le Chapitre 2, Utilisation de base et relatifs aux propriétés dans la section intitulée « Propriétés ».
Bien que Subversion accepte différentes options en fonction
des sous-commandes, toutes les options gardent leur
signification quelle que soit la sous-commande avec laquelle
elles sont utilisées — elles font partie d'un seul
« espace de noms ». Par exemple, l'option
--verbose
(-v
) signifie
toujours « être plus bavard », quelle que soit la
sous-commande utilisée.
Le client en ligne de commande svn renvoie généralement rapidement une erreur si vous lui indiquez une option qui ne s'applique pas à la sous-commande spécifiée. Cependant, depuis la version 1.5 de Subversion, plusieurs options sont acceptées par toutes les sous-commandes, même si elles n'ont pas d'effet dans certains cas. Elles sont regroupées dans la rubrique « options globales » des messages d'explication des commandes. Nous avons modifié le comportement antérieur afin de faciliter le travail des rédacteurs de scripts qui utilisent le client en ligne de commande. Ces options globales sont :
--config-dir
REP
Lire la configuration dans le répertoire spécifié
plutôt qu'à l'endroit par défaut
(.subversion
dans le répertoire de
l'utilisateur).
--no-auth-cache
Ne pas conserver les éléments d'authentification (par exemple l'identifiant et le mot de passe) dans les répertoires de configuration de Subversion.
--non-interactive
Pas de demande interactive. Les demandes interactives peuvent concerner, par exemple, les éléments d'authentification ou la résolution de conflits. Cette option est utile quand vous lancez Subversion dans un script totalement automatique et qu'il est plus pertinent de faire échouer Subversion plutôt que d'attendre une réponse interactive.
--password
MDP
Précise le mot de passe MDP à utiliser pour s'authentifier auprès du serveur Subversion. Si cette option n'est pas fournie ou si elle ne permet pas de s'authentifier correctement, Subversion vous demande, en tant que de besoin, le mot de passe de manière interactive.
--username
NOM
Précise le nom d'utilisateur NOM à utiliser pour s'authentifier auprès du serveur Subversion. Si cette option n'est pas fournie ou si elle ne permet pas de s'authentifier correctement, Subversion vous demande, en tant que de besoin, le nom d'utilisateur de manière interactive.
Le reste des options ne s'applique, et n'est reconnu, que par un sous-ensemble de commandes. Les voici :
--accept
ACTION
Précise l'attitude à adopter pour la résolution
automatique de conflits. Les valeurs possibles sont :
postpone
,
base
, mine-full
,
theirs-full
, edit
et
launch
.
--auto-props
Active les propriétés automatiques, remplaçant alors
la directive enable-auto-props
dans le
fichier de configuration
config
.
--change
(-c
)
ARG
Utilisée pour faire référence à un « changement » particulier (c-à-d. une révision). Cette option est du sucre syntaxique pour spécifier « -r ARG-1:ARG ».
--changelist
ARG
N'opérer que sur les membres de la liste de
changements nomméeARG
. Vous
pouvez utiliser cette option plusieurs fois pour spécifier
un ensemble de listes de changements.
--cl
ARG
Un alias pour l'option
--changelist
.
--depth
ARG
Limiter l'opération à cette profondeur.
ARG
peut prendre les valeurs
suivantes :
empty
, files
,
immediates
ou
infinity
.
--diff-cmd
CMD
Utiliser un programme externe pour afficher les
différences entre fichiers. Quand svn
diff est invoquée sans cette option, elle
utilise le moteur interne de Subversion qui fournit un
format unifié par défaut. Si vous voulez utiliser un
programme externe, ajouter l'option
--diff-cmd
.
Vous pouvez spécifier des options à ce programme externe
à l'aide de l'option --extensions
(voir
plus loin dans cette section).
--diff3-cmd
CMD
Spécifie une commande externe pour réaliser la fusion de fichiers.
--dry-run
Effectuer toutes les étapes de la commande, mais sans écrire effectivement les changements — que ce soit sur le disque local ou sur le dépôt.
--editor-cmd
CMD
Spécifie un programme externe pour éditer l'entrée du
journal de propagation ou une valeur de propriété. Voir la
section editor-cmd
dans la section intitulée « Fichier config
» pour savoir
comment spécifier un éditeur par défaut.
--encoding
ENC
L'entrée du journal de propagation est encodée avec le jeu de caractères ENC. La valeur par défaut est l'encodage utilisé par votre système d'exploitation conformément à la régionalisation active. Vous devez spécifier explicitement l'encodage si votre entrée du journal de propagation utilise un autre encodage que la valeur par défaut.
--extensions
(-x
)
ARGS
Spécifie un ou plusieurs arguments à passer à la
commande diff externe. Cette option n'est valide
qu'avec les commandes svn
diff ou svn merge, et avec
l'option --diff-cmd
.
Si vous voulez spécifier plusieurs arguments, vous devez
mettre entre guillemets ces arguments (par exemple,
svn diff --diff-cmd /usr/bin/diff -x
"-b -E"
).
--file
(-F
)
NOM_FICHIER
Utiliser le contenu du fichier NOM_FICHIER pour la commande spécifiée, le traitement exact variant suivant les sous-commandes. Par exemple, svn commit utilise le contenu comme entrée du journal de propagation alors que svn propset l'utilise comme valeur de la propriété.
--force
Force l'exécution de l'opération. Subversion interdit certaines opérations en temps normal mais vous pouvez passer outre et indiquer à Subversion : « oui, je sais ce que je fais et les conséquences que cela peut avoir, alors laisse-moi faire ». En utilisant une métaphore, on pourrait dire que cela revient à travailler sur un circuit électrique sous tension ; si vous ne savez pas ce que vous faites, vous prendrez sûrement une bonne décharge.
--force-log
Valide la source de l'entrée du journal de propagation
passée avec l'option --message
(-m
) ou --file
(-F
). Par défaut, Subversion renvoie une
erreur si les paramètres de ces options ressemblent à des
cibles de la sous-commande. Par exemple, si vous passez
le chemin d'un fichier suivi en versions à l'option
--file
(-F
), Subversion
considère que vous avez fait une erreur, c'est-à-dire que
le chemin indiqué devait plutôt être la cible de la
commande et que vous avez oublié de fournir le nom d'un
fichier — non suivi en versions — comme source
pour l'entrée du journal de propagation. Pour confirmer
votre intention et passer outre cette erreur, passez
l'option --force-log
aux sous-commandes
qui prennent des entrées du journal de propagation comme
arguments.
--help
(-h
ou
-?
)
Si elle est utilisée avec une ou plusieurs autres sous-commandes, affiche l'aide intégrée pour chacune d'elles. Utilisée seule, elle affiche l'aide générale relative au client en ligne de commande.
--ignore-ancestry
Ignorer l'héritage pour évaluer les différences (ne se fier qu'au chemin en tant que tel).
--ignore-externals
Ignorer les définitions de références externes ainsi que les copies de travail associées.
--incremental
Produire un affichage avec un format compatible pour la concaténation.
--keep-changelists
Ne pas détruire les listes de changements après la propagation.
--keep-local
Garder une copie locale d'un fichier ou répertoire (utilisée avec la commande svn delete).
--limit
(-l
)
NUM
Afficher seulement les NUM
premières entrées du journal de propagation.
--message
(-m
)
MESSAGE
Indique que vous spécifiez, sur la ligne de commande à la suite de cette option, soit une entrée du journal de propagation, soit un commentaire de verrouillage. Par exemple :
$ svn commit -m "They don't make Sunday."
--new
ARG
Utiliser ARG
comme nouvelle
cible (à utiliser avec la commande svn
diff).
--no-auto-props
Désactive les propriétés automatiques, remplaçant
alors la directive enable-auto-props
du fichier de configuration
config
.
--no-diff-deleted
Ne pas afficher les différences pour les fichiers supprimés. Le comportement par défaut de svn diff est d'afficher les différences comme si vous aviez toujours le fichier et que celui-ci était vide.
--no-ignore
Afficher les fichiers qui seraient normalement omis
dans la liste de statut en raison de la correspondance
avec un motif de noms de fichiers présent dans l'option de
configuration global-ignores
ou dans
la propriété svn:ignore
. Voir la section intitulée « Fichier config
» et la section intitulée « Occultation des éléments non suivis en versions » pour plus
d'information.
--no-unlock
Ne pas déverrouiller les fichiers : le comportement par défaut de la propagation (svn commit) est de déverrouiller tous les fichiers propagés. Voir la section intitulée « Verrouillage » pour plus d'information.
--non-recursive
(-N
)
Dépréciée. Interdit à une sous-commande de descendre dans les sous-répertoires. La plupart des sous-commandes descend par défaut dans les sous-répertoires (comportement récursif), mais quelques unes — généralement celles qui peuvent supprimer ou annuler des modifications locales — ne le font pas.
--notice-ancestry
Prendre en compte l'héritage pour évaluer les différences.
--old
ARG
Utiliser ARG
comme ancien
répertoire (utilisée avec la commande svn
diff).
--parents
Créer (s'ils n'existent pas) et ajouter (s'ils ne sont pas suivis en versions) les sous-répertoires parents à une copie de travail locale ou à un dépôt dans le cadre d'une opération. Cette option est particulièrement utile pour créer automatiquement plusieurs répertoires quand aucun n'existe. Si elle concerne une URL, tous les répertoires seront créés par une seule et même propagation.
--quiet
(-q
)
N'afficher que ce qui est essentiel pendant une opération.
--record-only
Marquer les révisions comme fusionnées (pour une
utilisation avec l'option --revision
).
--recursive
(-R
)
Rend la sous-commande récursive. Beaucoup de sous-commandes sont récursives par défaut.
--reintegrate
Utilisée avec la sous-commande svn merge, fusionner tous les changements de l'URL source dans la copie de travail locale. Voir la section intitulée « Comment garder une branche synchronisée » pour les détails.
--relocate
[CHEMIN...]
Utilisée avec la sous-commande svn switch, changer l'emplacement du dépôt auquel votre copie de travail fait référence. Ceci est utile si l'emplacement de votre dépôt a changé et que vous avez une copie de travail que vous voulez continuer à utiliser. Voir svn switch pour un exemple d'utilisation.
--remove
ARG
Effacer l'association de ARG
à une liste de changements.
--revision
(-r
)
REV
Indique que vous allez fournir une révision (ou un
intervalle de révisions) pour une opération particulière.
Vous pouvez fournir des numéros de révisions, des mots-clés
de révision ou des dates (encadrées par des accolades)
comme arguments à l'option revision
. Si
vous voulez spécifier un intervalle de révisions, vous
devez fournir deux révisions séparées par le symbole deux
points (:
). Par exemple :
$ svn log -r 1729 $ svn log -r 1729:HEAD $ svn log -r 1729:1744 $ svn log -r {2001-12-04}:{2002-02-17} $ svn log -r 1729:{2002-02-17}
Voir la section intitulée « Mots-clés de révision » pour plus d'information.
--revprop
Opérer sur une propriété de révision au lieu d'opérer
sur une propriété de fichier ou de répertoire. Cette
option requiert que vous passiez également une révision
avec l'option --revision
(-r
).
--set-depth
ARG
fixe (de manière permanente) la profondeur de la copie
de travail à partir de ce répertoire à l'une des valeurs
suivantes : empty
,
files
, immediates
ou infinity
.
--show-revs
ARG
Utilisée pour indiquer à svn
mergeinfo de n'afficher qu'un
ensemble de révisions, soit : merged
ou eligible
.
--show-updates
(-u
)
Afficher les informations relatives aux fichiers de la copie de travail qui ne sont plus à jour. Cela ne met pas à jour les fichiers — cela ne fait qu'afficher le nom des fichiers qui seront mis à jour lors de la prochaine commande svn update.
--stop-on-copy
Indique à une sous-commande Subversion qui parcourt l'héritage d'une ressource suivie en versions de s'arrêter lorsque une copie — c'est-à-dire un emplacement dans l'héritage où la ressource a été copiée depuis un autre endroit dans le dépôt — est trouvée.
--strict
Utiliser une sémantique stricte, notion plutôt vague sauf pour certaines sous-commandes spécifiques (pour ne pas la citer, svn propget).
--targets
NOM_FICHIER
Prendre la liste de fichiers cibles pour l'opération dans le fichier NOM_FICHIER au lieu de prendre les fichiers fournis dans la ligne de commande.
--use-merge-history
(-g
)
Utiliser ou afficher des informations supplémentaires sur l'historique de la fusion.
--verbose
(-v
)
Afficher autant d'informations que possible durant l'exécution de la sous-commande. Cela se traduit par l'affichage de champs supplémentaires, d'informations détaillées à propos de chaque fichier ou d'informations complémentaires relatives aux actions menées.
--version
Afficher les informations sur la version du client.
Ces informations comprennent le numéro de version du
client ainsi que la liste de tous les modules d'accès à un
dépôt disponibles. Avec l'option --quiet
(-q
), elle ne fait qu'afficher le numéro
de version dans un format compact.
--with-all-revprops
Utilisée avec l'option --xml
de
svn log, récupèrer et afficher
toutes les propriétés de révisions.
--with-revprop
ARG
Quand elle est utilisée avec une commande qui écrit
dans le dépôt, fixer une propriété de révision, en
utilisant le format NOM=VALEUR
,
en affectant VALEUR
à
NOM
. Quand elle est utilisée
avec svn log dans le mode
--xml
, afficher la valeur de
ARG
.
--xml
Produire un affichage au format XML.
Voici les différentes sous-commandes du programme svn. Afin de rester concis, nous passons sous silence les options globales (expliquées dans la section intitulée « Options de svn ») dans les descriptions suivantes.
[58] En fait, l'option --version
ne nécessite
pas de sous-commande, nous verrons cela dans quelques
minutes.