我使用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 ?
当前回答
TortoiseSVN有一个可用于TortoiseSVN GUI自动化的命令行界面,它不同于普通的Subversion界面。
你可以在文档中找到关于TortoiseSVN命令行选项的信息: 附录D.自动化TortoiseSVN。这里使用的主要程序是TortoiseProc.exe。
但是在最上面已经写着:
记住,TortoiseSVN是一个GUI客户端,这个自动化指南向您展示了如何使TortoiseSVN对话框出现以收集用户输入。如果希望编写不需要输入的脚本,则应该使用官方的Subversion命令行客户端。
另一种选择是安装Subversion二进制文件。Slik SVN是一个很好的构建(并且不需要像Collabnet那样注册)。如果您选择安装,最近版本的TortoiseSVN还包括命令行客户端。
其他回答
我的解决方案是使用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 persist"提供关于如何设置一个.cmd文件的技巧,该文件在每次打开命令提示符时运行,就像Unix中的。*rc文件一样。
过了一段时间,我用了这个变通办法……
(在.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添加到路径中应该可以使它在不复制文件的情况下工作,但对我来说它不起作用。
默认情况下,TortoiseSVN总是有一个与之相关的GUI(图形用户界面)。但是在安装程序(1.7版本及更高版本)上,您可以选择“命令行客户端工具”选项,这样您就可以从命令行调用svn命令(如svn commit和svn update)。
这是安装程序中“命令行客户端工具”选项的截图,你需要确保你选择了它:
选择“SVN命令行工具”后,它会变成这样: