我使用TortoiseSVN,并希望使用命令行SVN选项。

我使用命令:

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

并得到以下错误:

'svn'不能被识别为内部或外部命令

是因为我需要添加一些环境变量吗?或者不能从命令行使用TortoiseSVN ?


当前回答

默认情况下,TortoiseSVN总是有一个与之相关的GUI(图形用户界面)。但是在安装程序(1.7版本及更高版本)上,您可以选择“命令行客户端工具”选项,这样您就可以从命令行调用svn命令(如svn commit和svn update)。

这是安装程序中“命令行客户端工具”选项的截图,你需要确保你选择了它:

其他回答

默认情况下,TortoiseSVN总是有一个与之相关的GUI(图形用户界面)。但是在安装程序(1.7版本及更高版本)上,您可以选择“命令行客户端工具”选项,这样您就可以从命令行调用svn命令(如svn commit和svn update)。

这是安装程序中“命令行客户端工具”选项的截图,你需要确保你选择了它:

正如Joey指出的,TortoiseSVN有自己的命令行语法。不幸的是,如果您习惯了svn命令,那么它非常丑陋,而且它忽略了当前的工作目录,因此它不是很有用——除了用于脚本编写。

我创建了一个小的Python程序(tsvn),它尽可能地模仿svn命令行语法,并相应地调用TortoiseSVN。因此,调用普通命令行工具和调用TortoiseSVN之间的区别在开始时缩小到一个小字母t。

我的tsvn程序尚未完成,但已经有用。可以在芝士店(https://pypi.python.org/pypi/tsvn/)找到。

您可以同时安装TortoiseSVN和Apache Subversion命令行工具。我通常从VisualSVN下载站点https://www.visualsvn.com/downloads/安装Apache SVN工具

安装完成后,将Subversion\bin放在您设置的PATH中。然后,您将能够在需要使用GUI时使用TortoiseSVN,并且您有从命令行使用的适当的SVN命令行工具。

我的解决方案是使用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文件一样。

我获取SVN命令的方法是从TortoiseSVN目录复制.exe和.dll文件,并将它们粘贴到system32文件夹中。

您还可以从TortoiseSVN目录执行命令,并为每个命令添加工作目录的路径。例如:

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

将bin添加到路径中应该可以使它在不复制文件的情况下工作,但对我来说它不起作用。