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?
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:
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.
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 ...
Reportez-vous à cette image pour d'autres étapes.
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.
Pour utiliser le support de commande, suivez les étapes suivantes:
Définir le chemin dans les variables d'environnement:
ajoute la valeur de la variable avec le chemin d'accès au fichier TortoiseProc.exe , par exemple:
C:\Program Files\TortoiseSVN\bin
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
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.
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".
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.
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.
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?
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
.
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.
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%
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/ )
Après avoir sélectionné "Outils de ligne de commande SVN", il se présentera comme ceci: