web-dev-qa-db-fra.com

Utiliser TortoiseSVN via la ligne de commande

Je veux utiliser les options SVN en ligne de commande. J'utilise TortoiseSVN, et j'exécute plusieurs commandes et j'obtiens l'erreur suivante.

'svn' n'est pas reconnu comme une commande interne ou externe

J'ai utilisé la commande

svn checkout [-N] [--ignore-externals] [-r rev] URL PATH

Je pense que je devrais ajouter une variable d'environnement ou autre chose.

Que dois-je faire ou ne pas utiliser TortoiseSVN à partir de la ligne de commande?

230
Night Walker

Par défaut, TortoiseSVN est toujours associé à une interface utilisateur graphique. Mais sur le programme d'installation (de la version 1.7 et ultérieure), vous pouvez sélectionner l'option "Outils client en ligne de commande" afin de pouvoir appeler des commandes svn (telles que svn commit et svn update) à partir de la ligne de commande.

Voici une capture d'écran de l'option "Outils client en ligne de commande" dans le programme d'installation. Assurez-vous de la sélectionner:

How-to-install-TortoiseSvn-CommandLineTools

435
AnneTheAgile

TortoiseSVN a une interface de ligne de commande qui peut être utilisée pour l’automatisation de l’interface utilisateur graphique de TortoiseSVN. Elle est différente de celle de Subversion normale.

Vous pouvez trouver des informations sur les options de ligne de commande de TortoiseSVN dans la documentation: Annexe D. Automatisation de TortoiseSVN . Le programme principal à utiliser ici est TortoiseProc.exe.

Mais une note à peu près en haut indique déjà:

N'oubliez pas que TortoiseSVN est un client d'interface graphique, et ce guide d'automatisation vous explique comment afficher les boîtes de dialogue TortoiseSVN afin de collecter les entrées de l'utilisateur. Si vous voulez écrire un script qui ne nécessite aucune entrée, vous devez plutôt utiliser le client en ligne de commande Subversion officiel.

Une autre option serait d’installer les fichiers binaires Subversion. Slik SVN est une version de Nice (et ne nécessite pas d'enregistrement, comme Collabnet). Les versions récentes de TortoiseSVN incluent également le client de ligne de commande si vous choisissez de l'installer.

127
Joey

Si vous avez déjà installé l'interface graphique TortoiseSVN et vous demandez comment effectuer une mise à niveau vers des outils de ligne de commande, voici la procédure à suivre ...

  1. Allez au Panneau de configuration de Windows → Programme et fonctionnalités (Windows 7+)
  2. Localisez TortoiseSVN et cliquez dessus.
  3. Sélectionnez "Modifier" parmi les options disponibles.
  4. Reportez-vous à cette image pour d'autres étapes.

    TortoiseSVN Command Line Enable

  5. Une fois les outils client en ligne de commande terminés, ouvrez une invite de commande et tapez svn help pour vérifier que l'installation a réussi.

80
Devendra Vaja

Pour utiliser le support de commande, suivez les étapes suivantes:

  1. Définir le chemin dans les variables d'environnement:

    • open ' Propriétés système ';
    • sur l'onglet ' Avancé ' cliquez sur le bouton ' Variables d'environnement '
    • dans la section ' Variables système option' select ' Path ' et cliquez sur ' edit '
    • ajoute la valeur de la variable avec le chemin d'accès au fichier TortoiseProc.exe , par exemple:

      C:\Program Files\TortoiseSVN\bin

  2. Puisque vous avez enregistré TortoiseProc , vous pouvez l'utiliser selon TortoiseSVN documentation .

    Exemples:

    TortoiseProc.exe/commande: commit /path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt "/ logmsg:" message du journal de test "/ closeonend: 0

    TortoiseProc.exe/commande: update/path: "c:\svn_wc \"/closeonend: 0

    TortoiseProc.exe/commande: log /path:"c:\svn_wc\file1.txt "/ startrev: 50/endrev: 60/closeonend: 0

P.S. Pour utiliser un nom convivial tel que "svn" au lieu de "TortoiseProc", placez le fichier "svn.bat" dans le répertoire de "TortoiseProc.exe". Il y a un exemple de svn.bat:

TortoiseProc.exe %1 %2 %3
26
Warlock

Ma solution était d'utiliser DOSKEY pour configurer des alias pour les commandes que j'utilise le plus souvent:

DOSKEY svc=TortoiseProc.exe /command:commit /path:.
DOSKEY svu=TortoiseProc.exe /command:update /path:.
DOSKEY svl=TortoiseProc.exe /command:log /path:.
DOSKEY svd=TortoiseProc.exe /command:diff /path:$*

"Doskey persist" dans Google pour obtenir des conseils sur la configuration d'un fichier .cmd qui s'exécute chaque fois que vous ouvrez la commande Invite comme un fichier. * Rc sous Unix.

9
SeanH

Pour activer svn, exécutez à nouveau le programme d'installation TortoiseSVN, sélectionnez "Modifier" (permet aux utilisateurs de modifier le mode d'installation des fonctionnalités) et installez des "outils client en ligne de commande".

9
Kiki

TortoiseSVN et les outils de ligne de commande Apache Subversion peuvent être installés. J'installe généralement les outils Apache SVN à partir du site de téléchargement VisualSVN: https://www.visualsvn.com/downloads/

Une fois installé, placez\Subversion dans votre ensemble PATH. Ensuite, vous pourrez utiliser TortoiseSVN lorsque vous souhaitez utiliser l'interface graphique et disposer des outils de ligne de commande SVN appropriés à utiliser à partir de la ligne de commande.

4
David

Mon correctif pour obtenir les commandes SVN était de copier les fichiers .exe et .dll du répertoire TortoiseSVN et de les coller dans le dossier system32.

Vous pouvez également exécuter la commande à partir du répertoire TortoiseSVN et ajouter le chemin du répertoire de travail à chaque commande. Par exemple:

C:\Program Files\TortoiseSVN\bin> svn st -v C:\checkout

Ajouter la corbeille au chemin devrait le faire fonctionner sans dupliquer les fichiers, mais cela n'a pas fonctionné pour moi.

2
KC an EE

Il y a une confusion qui pousse beaucoup d'utilisateurs de TortoiseSVN à utiliser les mauvais outils de ligne de commande alors qu'ils recherchaient un client en ligne de commande _svn.exe_.

Que dois-je faire ou ne pas utiliser TortoiseSVN à partir de la ligne de commande?

svn.exe

Si vous souhaitez exécuter les commandes Subversion à partir de l'invite de commande, vous devez exécuter le client en ligne de commande svn.exe . TortoiseSVN 1.6.x et les versions antérieures n'incluaient pas les outils de ligne de commande SVN, contrairement aux versions modernes.

Si vous souhaitez obtenir des outils de ligne de commande SVN sans avoir à installer TortoiseSVN, consultez la page page des distributions binaires SVN ou téléchargez simplement la dernière version à partir de page de téléchargement VisualSVN .

Si des outils de ligne de commande SVN sont installés sur votre système, mais que vous obtenez toujours l'erreur _'svn' is not recognized as an internal or external command_, vous devez vérifier la variable _%PATH%_. _%PATH%_ doit inclure le chemin d'accès au répertoire des outils SVN, par exemple. C:\Program Files (x86)\VisualSVN\bin.

TortoiseProc.exe

Outre _svn.exe_, TortoiseSVN est livré avec _TortoiseProc.exe_ qui peut être appelé à partir de la commande Invite. Dans la plupart des cas, vous n'avez pas besoin d'utiliser cet outil, car il ne devrait être utilisé que pour l'automatisation de l'interface graphique. _TortoiseProc.exe_ ne remplace pas le client en ligne de commande SVN.

2
bahrep

Après un certain temps, j'ai utilisé cette solution de contournement ...

(au fichier .bat)

SET "CHECKOUT=http://yoururl.url";
SET "PATH=your_folder_path"

start "C:\Program Files\TortoiseSVN\bin" svn.exe checkout %CHECKOUT% %PATH%
2
jorgesimoes

Comme Joey l'a souligné, TortoiseSVN a sa propre syntaxe en ligne de commande. Malheureusement, c'est assez moche, si vous êtes habitué aux commandes svn, et qu'il ignore le répertoire de travail en cours, il n'est donc pas très utilisable, à l'exception du script.

J'ai créé un petit programme Python (tsvn) qui imite autant que possible la syntaxe de ligne de commande svn et appelle TortoiseSVN en conséquence. Ainsi, la différence entre appeler les outils de ligne de commande habituels et appeler TortoiseSVN est réduite à une petite lettre t au début.

Mon programme tsvn n'est pas encore complet mais est déjà utile. On peut le trouver dans la fromagerie ( https://pypi.python.org/pypi/tsvn/ )

2
Tobias

Après avoir sélectionné "Outils de ligne de commande SVN", il se présentera comme ceci:

Enter image description here

1
Alvin567