Annexe D. Automatiser TortoiseSVN

Table des matières

Commandes de TortoiseSVN
Commandes de TortoiseIDiff

Puisque toutes les commandes pour TortoiseSVN sont contrôlées par des paramètres de ligne de commande, vous pouvez l'automatiser avec des scripts batch ou démarrer des commandes spécifiques et des boîtes de dialogues depuis d'autres programmes (par exemple votre éditeur de texte favori).

Important

Souvenez-vous que TortoiseSVN est un client GUI et ce guide d'automatisation vous montre comment faire les boîtes de dialogues de TortoiseSVN apparaissent pour collecter les entrées utilisateur. Si vous voulez écrire un script qui n'exige aucune entrée, vous devriez utiliser le client en ligne de commande Subversion officiel à la place.

Commandes de TortoiseSVN

Le programme GUI de TortoiseSVN s'appelle TortoiseProc.exe. Toutes les commandes sont spécifiées avec le paramètre /command:abcdabcd est le nom de la commande requise. La plupart de ces commandes ont besoin d'au moins un argument de chemin, que l'on donne avec /path:"un\chemin". Dans la table suivante, la commande fait référence au paramètre /command:abcd et le chemin se réfère au paramètre /path:"un\chemin".

Puisque certaines des commandes peuvent prendre une liste de chemins cibles (par exemple livrer plusieurs fichiers spécifiques) le paramètre /path peut prendre plusieurs chemins, séparés par un caractère *.

TortoiseSVN utilise des fichiers temporaires pour passer des arguments multiples entre l'extension du shell et le programme principal. À partir de la version 1.5.0 et supérieures, le paramètre /notempfile est obsolète et il est inutile de l'ajouter désormais.

The progress dialog which is used for commits, updates and many more commands usually stays open after the command has finished until the user presses the OK button. This can be changed by checking the corresponding option in the settings dialog. But using that setting will close the progress dialog, no matter if you start the command from your batch file or from the TortoiseSVN context menu.

To specify a different location of the configuration file, use the parameter /configdir:"path\to\config\directory". This will override the default path, including any registry setting.

Pour fermer la boîte de dialogue de progression automatiquement à la fin d'une commande sans utiliser le réglage permanent, vous pouvez lui passer le paramètre /closeonend.

  • /closeonend:0 ne ferme pas la boîte de dialogue automatiquement

  • /closeonend:1 ferme automatiquement s'il n'y a pas d'erreurs

  • /closeonend:2 ferme automatiquement s'il n'y a pas d'erreurs ni de conflits

  • /closeonend:2 ferme automatiquement s'il n'y a pas d'erreurs, de conflits ni de fusions

  • /closeonend:4 ferme automatiquement s'il n'y a pas d'erreurs, de conflits ni de fusions pour les opérations locales

Le tableau ci-dessous liste toutes les commandes qui peuvent être accessibles en utilisant la ligne de commande TortoiseProc.exe. Comme décrit ci-dessus, celles-ci devraient être de la forme /command:abcd. Dans le tableau, le préfixe /command est omis pour économiser de la place.

Tableau D.1. Liste des commandes et des options disponibles

CommandeDescription
:aboutAffiche la boîte de dialogue d'À propos. Elle s'affiche aussi si aucune commande n'est fournie.
:logOpens the log dialog. The /path specifies the file or folder for which the log should be shown. Three additional options can be set: /startrev:xxx, /endrev:xxx and /strict
:checkoutOuvre la boîte de dialogue d'extraction. Le /path spécifie le répertoire cible et le /url spécifie l'URL à extraire.
:importOpens the import dialog. The /path specifies the directory with the data to import.
:updateMet à jour la copie de travail dans /path vers HEAD. Si l'option /rev est fournie alors une boîte de dialogue est affichée pour demander à l'utilisateur à quelle révision la mise à jour devrait se faire. Pour éviter la boîte de dialogue, spécifiez un numéro de révision /rev:1234. Les autres options sont /nonrecursive et /ignoreexternals.
:commitOpens the commit dialog. The /path specifies the target directory or the list of files to commit. You can also specify the /logmsg switch to pass a predefined log message to the commit dialog. Or, if you don't want to pass the log message on the command line, use /logmsgfile:chemin, where chemin points to a file containing the log message. To pre-fill the bug ID box (in case you've set up integration with bug trackers properly), you can use the /bugid: "l'id du bug ici" to do that.
:addAjoute les fichiers de /path au contrôle de version.
:revertAnnule les modifications locales d'une copie de travail. Le /path indique quels éléments annuler.
:cleanupNettoie les opérations interrompues ou annulées et déverrouille la copie de travail dans /path.
:resolveMarque un fichier en conflit indiqué dans /path comme résolu. Si /noquestion est donné, alors la résolution est faite sans demander d'abord à l'utilisateur si cela doit être vraiment fait.
:repocreateCrée un référentiel dans /path
:switchOuvre la fenêtre Aller sur. Le /path spécifie le répertoire cible.
:exportExports the working copy in /path to another directory. If the /path points to an unversioned directory, a dialog will ask for an URL to export to the directory in /path.
:mergeOuvre la fenêtre de fusion. Le /path spécifie le répertoire cible.
:mergeallOuvre la fenêtre fusionner tout. Le /path spécifie le répertoire cible.
:copyOuvre la fenêtre des branches/tags. Le /path est la copie de travail de laquelle faire une branche ou un tag. Et le /url est l'URL de destination. Vous pouvez également spécifier le /logmsg pour passer un message prédéfini à la fenêtre des branches/tags. Ou si vous voulez passer le message en ligne de commande, utilisez /logmsgfile:chemin, où chemin pointe sur un fichier contenant le message.
:settingsOuvre la boîte de dialogue de configuration.
:removeSupprime les fichiers dans /path du contrôle de version.
:renameRenomme le fichier dans /path. Le nouveau nom pour le fichier est demandé par une boîte de dialogue. Pour éviter la question concernant le renommage de fichiers similaires en une étape, passez /noquestion.
:diffDémarre le programme externe de comparaison indiqué dans la configuration de TortoiseSVN. Le /path spécifie le premier fichier. Si l'option /path2 est activée, alors le programme de comparaison est lancé avec ces deux fichiers. Si /path2 est omit, alors la comparaison est faite entre le fichier dans /path et sa BASE.Pour renseigner explicitement les révisions à comparer, utiliser /startrev:xxx et /endrev:xxx. Si /blame est activé et /path2 non, alors la comparaison est faite en bannissant d'abord les révisions données.
:showcompare

Depending on the URLs and revisions to compare, this either shows a unified diff (if the option unified is set), a dialog with a list of files that have changed or if the URLs point to files starts the diff viewer for those two files.

Les options url1, url2, revision1 et revision2 doivent être précisées. Les options pegrevision, ignoreancestry, blame et unified sont facultatives.

:conflicteditorDémarre l'éditeur de conflit indiqué dans la configuration de TortoiseSVN avec les fichiers corrects pour le fichier en conflit dans /path.
:relocateOuvre la boîte de dialogue Relocaliser. Le /path spécifie le chemin de la copie de travail à relocaliser.
:helpOuvre le fichier d'aide.
:repostatusOuvre la fenêtre vérifier les modifications. Le /path spécifie le répertoire de la copie de travail.
:repobrowserOuvre la fenêtre de l'explorateur de référentiel, pointant sur l'URL de la copie de travail donnée dans /path ou /path pointe directement sur une URL. Une option supplémentaire /rev:xxx peut être utilisée pour spécifier la révision devant être affichée. Si le /rev:xxx n'est pas renseigné, la version de tête est utilisée par défaut. Si /path pointe sur une URL, le /projectpropertiespath:path/to/wc spécifie le chemin à partir duquel il faut lire et utiliser les propriétés du projet.
:ignoreAjoute toutes les cibles dans /path à la liste des éléments ignorés, c'est-à-dire ajoute le svn:ignore à ces fichiers.
:blame

Ouvre la fenêtre de bannissement pour le fichier spécifier dans /path.

Si les options /startrev et /endrev sont précisées, la fenêtre permettant de spécifier la plage de révisions à bannir n'est pas affichée, ces valeurs des révisions sont utilisées à la place.

If the option /line:nnn is set, TortoiseBlame will open with the specified line number showing.

The options /ignoreeol, /ignorespaces and /ignoreallspaces are also supported.

:catEnregistre un fichier depuis une URL ou depuis un chemin de la copie de travail donné dans /path à l'emplacement donné dans /savepath:chemin. La révision est donnée dans /revision:xxx. Cela peut être utilisé pour obtenir un fichier avec une révision spécifique.
:createpatchCrée un patch pour le chemin donné dans /path.
:revisiongraphMontre le graphique de révision pour le chemin donné dans /path.
:lockVerrouille un ou tous les fichiers dans un répertoire donné dans /path. La boîte de dialogue 'Verrouiller' s'affiche afin de permettre à l'utilisateur d'entrer un commentaire pour le verrou.
:unlockDéverrouille un fichier ou tous les fichiers d'un répertoire donné dans /path.
:rebuildiconcacheReconstruit le cache d'icône Windows. Utilisez-le seulement dans le cas où les icônes Windows sont corrompues. Un effet secondaire à cela (qui ne peut être évité) est que les icônes sur le bureau sont réarrangées. Pour supprimer la fenêtre d'information, passez /noquestion.
:propertiesAffiche la boîte de dialogue de propriétés pour le chemin donné dans /path.


Exemples (qui devraient être saisis sur une ligne):

TortoiseProc.exe /command:commit                 /path:"c:\svn_ct\fichier1.txt*c:\svn_ct\fichier2.txt"
                 /logmsg:"message de log de test" /closeonend

TortoiseProc.exe /command:update /path:"c:\svn_ct\" /closeonend

TortoiseProc.exe /command:log /path:"c:\svn_ct\fichier1.txt"
                 /startrev:50 /endrev:60 /closeonend