通过命令行使用TortoiseSVN


253

我想使用命令行SVN选项。我使用TortoiseSVN,并运行多个命令,但出现以下错误。

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

我用的命令

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

我想我应该添加一些环境变量或其他东西。

我应该怎么做或不能从命令行使用TortoiseSVN?


4
我建议使用slik颠覆。安装后,只需将其bin目录添加到您的路径即可。-bhups
bhups

3
TortoiseSVN可能是最常用的Windows GUI SVN客户端,并且已经有完整的文档记录。我不会仅仅因为它不是参考命令行实现而将其称为伪客户端。
乔伊

18
TortoiseSVN的最新版本(本文写作1.7.1)在安装命令行工具时提供了一个选项。默认情况下未打开它,但它将安装svn的标准命令行文件。因此,不再需要安装像Silk那样的单独的Subversion软件包。
vee

1
仅供参考,如果使用Slik svn并出现以下错误:“'svn'无法识别...”,则可能必须打开“系统属性”对话框。尽管Slik确实将正确的条目添加到您的Path变量中,但是您可能必须单击“编辑”并单击“确定”(即使您没有进行任何更改)以启用该变量。至少那是我使用Windows Vista的经验。完成此操作后,Windows识别出路径中的更改,并且我的svn命令被识别。
杰西

1
我已将SlikSvn / bin路径添加到环境变量中,但仍然收到此错误...
Lion789 2014年

Answers:


463

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

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

如何安装TortoiseSvn-CommandLineTools


52
就我个人而言,我更喜欢这个答案,而不是公认的答案:没有第二安装,并且可以完全访问标准SVN命令行。
Haroldo_OK 2013年

2
还具有命令行工具版本与TortoiseSVN版本保持同步的附加优点。
the_mandrill

4
...这意味着,更详细地讲:Subversion的工作目录格式已经更改了几次,例如在1.7和1.8版本中。1.7客户端除非使用svn upgraded,否则不会使用较旧的工作目录。之后,1.6客户端将无法再使用它。
Tobias

38
提示,如果您已经安装了Tortoise,则无需重新安装。您可以简单地打开原始安装程序.msi文件,而不是选择“卸载”,而可以选择“修改”。它只会更新您当前的Tortoise安装,而不会弄乱任何内容。
Trevor

5
提示:如果您已经安装了Tortoise,并且没有.msi文件,则可以转到“控制面板”->“程序和功能”,然后选择“ TortoiseSVN”->“修改”。
zvi

131

TortoiseSVN具有可用于TortoiseSVN GUI自动化的命令行界面,它与普通的Subversion不同。

您可以在文档中找到有关TortoiseSVN命令行选项的信息: 附录D.自动化TortoiseSVN。这里使用的主要程序是TortoiseProc.exe

但是上面最上面的注释已经说:

请记住,TortoiseSVN是一个GUI客户端,并且该自动化指南向您展示了如何使TortoiseSVN对话框出现以收集用户输入。如果要编写不需要输入的脚本,则应改用官方的Subversion命令行客户端。

另一个选择是您安装Subversion二进制文件。Slik SVN是一个不错的构建(不需要像Collabnet这样的注册)。如果您选择安装TortoiseSVN的最新版本,则还包括命令行客户端。


2
只需添加-确保乌龟在您的行进路线上。否则,将无济于事。
Thomas Owens

2
基于此答案,我认为最好的选择是安装实际的SVN命令行客户端,而不是学习第二个命令行界面。我不知道该怎么做。
jprete

2
Thomas:默认情况下,TortoiseSVN和Slik SVN都会相应地更改路径。
乔伊,

23
该解决方案已经过时了,TortosieSVN安装程序现在包括命令行工具。
2013年

1
安装后,您可能需要重新引导,以便对PATH环境变量进行更改。
奥利弗·博克

91

如果您已经安装了TortoiseSVN GUI,并且想知道如何升级到命令行工具,请按照以下步骤操作...

  1. 转到Windows控制面板→ 程序和功能(Windows 7+)
  2. 找到TortoiseSVN并单击它。
  3. 从可用选项中选择“更改”。
  4. 请参阅此图像以了解更多步骤。

    TortoiseSVN命令行启用

  5. 命令行客户端工具完成后,打开命令提示符并键入svn help以检查安装是否成功。


您的答案尚未格式化。而且它有不需要的信息。他做了正确的格式化和编辑您的答案。请阅读帮助中心以了解更多信息。;)
幸运

Win10是“应用程序和功能” ..但这可能很明显
苗条的

好吧,别相信我。请在meta中提出这个问题,以确认编辑是否合法。他不仅格式化了您的答案,而且还删除了不需要答案的不需要的信息。这称为节制。而且具有高代表的人通常会通过主持和贡献来清理站点,这就是为什么我建议您查找帮助中心的原因。但是您只想争论而不是获取知识。祝你
好运

是的,实际上,我有兴趣分享知识,而不是主张某人的工作和宣讲。我也不是高级代表的盲目追随者。
Devendra Vaja

当我们启用命令行时,它会询问下载所需的应用程序路径。路径:osdn.net/projects/tortoisesvn/storage/1.12.0/Application/…–
阿米特·乔希

27

要使用命令支持,您应该遵循以下步骤:

  1. 在环境变量中定义路径:

    • 打开“ 系统属性 ”;
    • 在“ 高级 ” 选项卡上,单击“ 环境变量 ”按钮
    • 在“ 系统变量 ” 部分中,选择“ 路径 ”选项,然后单击“ 编辑
    • 将变量值附加到TortoiseProc.exe文件的路径,例如:

      C:\ Program Files \ TortoiseSVN \ bin

  2. 由于已经注册了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...)。
Tobias 2013年

10

要启用svn,请再次运行TortoiseSVN安装程序,选择“修改”(允许用户更改功能部件的安装方式)并安装“命令行客户端工具”。


对于那些想知道“修改”选项在哪里的人-尝试重新安装Tortoise SVN
maya

@maya如果已安装,请不要尝试卸载并重新安装它。转到Control Panel\Programs\Programs and Features搜索Tortoise SVN,然后单击Change,然后单击Modify
幸运

9

我的解决方案是使用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的唯一答案,而不是普通的。
好战的黑猩猩'18年

4

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

安装完成后,将Subversion \ bin放入您设置的PATH中。这样,当您想使用GUI时,便可以使用TortoiseSVN,并且您拥有从命令行使用的适当SVN命令行工具。


3

造成混乱的原因是,许多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

TortoiseProc.exe

除之外,还可以从命令提示符处调用svn.exeTortoiseSVN TortoiseProc.exe。在大多数情况下,你就不会需要使用这个工具,因为它应该只用于GUI自动化。TortoiseProc.exe不能替代SVN命令行客户端。


2

正如Joey所指出的,TortoiseSVN具有自己的命令行语法。不幸的是,如果您习惯于使用svn命令,它会很丑陋,并且会忽略当前的工作目录,因此它不是很有用-除了脚本之外。

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

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


对于那些不熟悉Python的人:您需要一个最新的Python 2.x解释器。如果您有easy_installpip install,只需指定tsvn;否则,您可以下载并解压缩tarball并运行包含的setup.py安装脚本。由于已解释,您可以对其进行详细检查;-)
Tobias

2

一段时间后,我使用了这种解决方法...

(在.bat文件中)

SET "CHECKOUT=http://yoururl.url";
SET "PATH=your_folder_path"

start "C:\Program Files\TortoiseSVN\bin" svn.exe checkout %CHECKOUT% %PATH%

2

我获取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
Suraj M

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.