我想使用命令行SVN选项。我使用TortoiseSVN,并运行多个命令,但出现以下错误。
'svn'不被识别为内部或外部命令
我用的命令
svn checkout [-N] [--ignore-externals] [-r rev] URL PATH
我想我应该添加一些环境变量或其他东西。
我应该怎么做或不能从命令行使用TortoiseSVN?
我想使用命令行SVN选项。我使用TortoiseSVN,并运行多个命令,但出现以下错误。
'svn'不被识别为内部或外部命令
我用的命令
svn checkout [-N] [--ignore-externals] [-r rev] URL PATH
我想我应该添加一些环境变量或其他东西。
我应该怎么做或不能从命令行使用TortoiseSVN?
Answers:
默认情况下,TortoiseSVN始终具有与其关联的GUI(图形用户界面)。但是,在安装程序(1.7版及更高版本)上,您可以选择“命令行客户端工具”选项,以便可以从命令行调用svn命令(如svn commit和svn update)。
这是安装程序中“命令行客户端工具”选项的屏幕截图,您需要确保选择它:
svn upgrade
d,否则不会使用较旧的工作目录。之后,1.6客户端将无法再使用它。
TortoiseSVN具有可用于TortoiseSVN GUI自动化的命令行界面,它与普通的Subversion不同。
您可以在文档中找到有关TortoiseSVN命令行选项的信息:
附录D.自动化TortoiseSVN。这里使用的主要程序是TortoiseProc.exe
。
但是上面最上面的注释已经说:
请记住,TortoiseSVN是一个GUI客户端,并且该自动化指南向您展示了如何使TortoiseSVN对话框出现以收集用户输入。如果要编写不需要输入的脚本,则应改用官方的Subversion命令行客户端。
另一个选择是您安装Subversion二进制文件。Slik SVN是一个不错的构建(不需要像Collabnet这样的注册)。如果您选择安装TortoiseSVN的最新版本,则还包括命令行客户端。
如果您已经安装了TortoiseSVN GUI,并且想知道如何升级到命令行工具,请按照以下步骤操作...
要使用命令支持,您应该遵循以下步骤:
在环境变量中定义路径:
将变量值附加到TortoiseProc.exe文件的路径,例如:
C:\ Program Files \ TortoiseSVN \ bin
由于已经注册了TortoiseProc,因此可以根据TortoiseSVN 文档使用它。
例子:
TortoiseProc.exe / command:commit /path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt“ / logmsg:”测试日志消息“ / closeonend:0
TortoiseProc.exe / command:update / path:“ c:\ svn_wc \” / closeonend:0
TortoiseProc.exe / command:log /path:"c:\svn_wc\file1.txt“ / startrev:50 / endrev:60 / closeonend:0
PS要使用友好名称,例如“ svn”而不是“ TortoiseProc”,请将“ svn.bat”文件放置在“ TortoiseProc.exe”目录中。有一个svn.bat的示例:
TortoiseProc.exe %1 %2 %3
tsvn
程序(在术士答案时尚不存在)。最新的Windows版本允许将所有参数指定为%*
(而不是%1 %2 %3
...)。
我的解决方案是使用DOSKEY为我最常使用的命令设置一些别名:
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持久”提供了有关如何设置.cmd文件的提示,该文件在每次打开命令提示符时都将运行,例如Unix中的。* rc文件。
svn
从命令行实际调用TortoiseSVN的唯一答案,而不是普通的。
您可以同时安装TortoiseSVN和Apache Subversion命令行工具。我通常会从VisualSVN下载站点安装Apache SVN工具:https : //www.visualsvn.com/downloads/
安装完成后,将Subversion \ bin放入您设置的PATH中。这样,当您想使用GUI时,便可以使用TortoiseSVN,并且您拥有从命令行使用的适当SVN命令行工具。
造成混乱的原因是,许多TortoiseSVN用户在实际寻找svn.exe
命令行客户端时会使用错误的命令行工具。
我应该怎么做或不能从命令行使用TortoiseSVN?
如果要从命令提示符运行Subversion命令,则应运行svn.exe
命令行客户端。TortoiseSVN 1.6.x和更低版本不包含SVN命令行工具,但现代版本包含。
如果要获取SVN命令行工具而不必安装TortoiseSVN,请查看SVN二进制发行版页面,或直接从VisualSVN下载页面下载最新版本。
如果您的系统上安装了SVN命令行工具,但仍然出现错误'svn' is not recognized as an internal or external command
,则应检查%PATH%
环境变量。%PATH%
必须包含SVN工具目录的路径,例如C:\Program Files (x86)\VisualSVN\bin
。
除之外,还可以从命令提示符处调用svn.exe
TortoiseSVN TortoiseProc.exe
。在大多数情况下,你就不会需要使用这个工具,因为它应该只用于GUI自动化。TortoiseProc.exe
不能替代SVN命令行客户端。
正如Joey所指出的,TortoiseSVN具有自己的命令行语法。不幸的是,如果您习惯于使用svn
命令,它会很丑陋,并且会忽略当前的工作目录,因此它不是很有用-除了脚本之外。
我创建了一个小Python程序(tsvn
),它svn
尽可能地模仿命令行语法,并相应地调用TortoiseSVN。因此,在开始时,调用常规命令行工具和调用TortoiseSVN之间的差异减小到一个小写字母t
。
我的tsvn
程序尚未完成,但已经有用。可以在奶酪店(https://pypi.python.org/pypi/tsvn/)中找到
easy_install
或pip install
,只需指定tsvn
;否则,您可以下载并解压缩tarball并运行包含的setup.py
安装脚本。由于已解释,您可以对其进行详细检查;-)
一段时间后,我使用了这种解决方法...
(在.bat文件中)
SET "CHECKOUT=http://yoururl.url";
SET "PATH=your_folder_path"
start "C:\Program Files\TortoiseSVN\bin" svn.exe checkout %CHECKOUT% %PATH%
我获取SVN命令的方法是从TortoiseSVN目录复制.exe和.dll文件,然后将它们粘贴到system32文件夹中。
您也可以从TortoiseSVN目录执行命令,并将工作目录的路径添加到每个命令。例如:
C:\Program Files\TortoiseSVN\bin> svn st -v C:\checkout
将bin添加到路径应该可以使其在不复制文件的情况下正常工作,但是对我来说却不起作用。
'svn' is not recognized as an internal or external command