我使用TortoiseSVN,并希望使用命令行SVN选项。
我使用命令:
svn checkout [-N] [--ignore-externals] [-r rev] URL PATH
并得到以下错误:
'svn'不能被识别为内部或外部命令
是因为我需要添加一些环境变量吗?或者不能从命令行使用TortoiseSVN ?
我使用TortoiseSVN,并希望使用命令行SVN选项。
我使用命令:
svn checkout [-N] [--ignore-externals] [-r rev] URL PATH
并得到以下错误:
'svn'不能被识别为内部或外部命令
是因为我需要添加一些环境变量吗?或者不能从命令行使用TortoiseSVN ?
当前回答
正如Joey指出的,TortoiseSVN有自己的命令行语法。不幸的是,如果您习惯了svn命令,那么它非常丑陋,而且它忽略了当前的工作目录,因此它不是很有用——除了用于脚本编写。
我创建了一个小的Python程序(tsvn),它尽可能地模仿svn命令行语法,并相应地调用TortoiseSVN。因此,调用普通命令行工具和调用TortoiseSVN之间的区别在开始时缩小到一个小字母t。
我的tsvn程序尚未完成,但已经有用。可以在芝士店(https://pypi.python.org/pypi/tsvn/)找到。
其他回答
要使用命令支持,您应该遵循以下步骤:
Define Path in Environment Variables: open 'System Properties'; on the tab 'Advanced' click on the 'Environment Variables' button in the section 'System variables' select 'Path' option and click 'edit' append variable value with the path to TortoiseProc.exe file, for example: C:\Program Files\TortoiseSVN\bin Since you have registered TortoiseProc, you can use it in according to TortoiseSVN documentation. Examples: TortoiseProc.exe /command:commit /path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt" /logmsg:"test log message" /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
注:要使用友好的名称,如'svn'而不是'TortoiseProc',请将'svn.bat'文件放在'TortoiseProc.exe'目录中。这里有一个svn.bat的例子:
TortoiseProc.exe %1 %2 %3
我获取SVN命令的方法是从TortoiseSVN目录复制.exe和.dll文件,并将它们粘贴到system32文件夹中。
您还可以从TortoiseSVN目录执行命令,并为每个命令添加工作目录的路径。例如:
C:\Program Files\TortoiseSVN\bin> svn st -v C:\checkout
将bin添加到路径中应该可以使它在不复制文件的情况下工作,但对我来说它不起作用。
有一个混乱,导致许多TortoiseSVN用户在实际寻找svn.exe命令行客户端时使用错误的命令行工具。
我应该做什么或者不能从命令行使用TortoiseSVN ?
svn.exe
如果您想从命令提示符运行Subversion命令,您应该运行svn.exe命令行客户端。TortoiseSVN 1.6。x和旧版本不包括SVN命令行工具,但现代版本有。
如果您想在不安装TortoiseSVN的情况下获得SVN命令行工具,请检查SVN二进制分布页面或从VisualSVN下载页面下载最新版本。
如果您的系统上安装了SVN命令行工具,但仍然得到错误“SVN”不被识别为内部或外部命令,您应该检查%PATH%环境变量。%PATH%必须包含SVN tools目录的路径,例如C:\Program Files (x86)\VisualSVN\bin.
TortoiseProc.exe
除了svn.exe, TortoiseSVN还附带了可以从命令提示符调用的TortoiseProc.exe。在大多数情况下,您不需要使用这个工具,因为它应该只用于GUI自动化。TortoiseProc.exe不是SVN命令行客户端的替代品。
过了一段时间,我用了这个变通办法……
(在.bat文件中)
SET "CHECKOUT=http://yoururl.url";
SET "PATH=your_folder_path"
start "C:\Program Files\TortoiseSVN\bin" svn.exe checkout %CHECKOUT% %PATH%
默认情况下,TortoiseSVN总是有一个与之相关的GUI(图形用户界面)。但是在安装程序(1.7版本及更高版本)上,您可以选择“命令行客户端工具”选项,这样您就可以从命令行调用svn命令(如svn commit和svn update)。
这是安装程序中“命令行客户端工具”选项的截图,你需要确保你选择了它: