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

我使用命令:

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

并得到以下错误:

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

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


当前回答

有一个混乱,导致许多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命令行客户端的替代品。

其他回答

若要重新运行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%

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

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