如何从命令行签出特定的Subversion修订?

我想使用命令行签出颠覆中一个文件夹的特定修订。

我在TortoiseProc.exe中没有看到指定修订号的选项,

TortoiseProc.exe /command:checkout <url>

我如何得到我想要的修改?TortoiseProc.exe是我想做的正确工具吗?

610482 次浏览

使用TortoiseProc而不是普通的svn命令行有什么原因吗?

我使用:

svn checkout svn://somepath@1234 working-directory

(获取版本1234)

我相信它的语法是/rev:<revisionNumber>

相关文档可以在在这里中找到

您必须直接使用svn:

svn checkout URL[@REV]... [PATH]

而且

svn help co

给你更多的帮助。

你可以试试

TortoiseProc.exe /command:checkout /rev:1234

得到第1234版。

我不是100%确定/rev选项与checkout兼容,但我从一些TortoiseProc文档中得到了这个想法。

要么

svn checkout url://repository/path@1234

svn checkout -r 1234 url://repository/path

如果你已经在本地签出了它,那么你可以cd到它被签出的地方,然后使用以下语法:

$ svn up -rXXXX

裁判:从命令行检出subversion的特定修订

似乎可以使用存储库浏览器。点击右上角的修订按钮,将其更改为您想要的修订。然后在浏览器中右键单击文件,并使用“复制到工作副本…”但是要更改它将检出的文件名,以避免冲突。

进入文件夹并使用命令:

svn co {url}

SVN签出到修订,其中存储库位于另一台服务器上

使用svn log命令来查找可用的修订:

svn log

打印:

------------------------------------------------------------------------
r762 | machines | 2012-12-02 13:00:16 -0500 (Sun, 02 Dec 2012) | 2 lines


------------------------------------------------------------------------
r761 | machines | 2012-12-02 12:59:40 -0500 (Sun, 02 Dec 2012) | 2 lines

注意数字r761。命令说明如下:

svn export http://url-to-your-file@761 /tmp/filename

我特别使用了这个命令:

svn export svn+ssh://machines@mywebsite.com/home1/oct/calc/calcFeatures.m@761 calcFeatures.m

这会导致calcFeatures。M修订版761被签出到当前目录。

你不应该使用TortoiseProc.exe作为命令行Subversion客户端!TortoiseProc应该仅用于自动化TortoiseSVN的GUI。参见请参阅TortoiseSVN手册:

记住,TortoiseSVN是一个GUI客户端,这个自动化指南 向您展示如何使TortoiseSVN对话框出现收集用户 输入。如果您想编写一个不需要输入的脚本,您可以

使用Subversion 命令行svn.exe客户端。使用命令行客户机就可以

你可能会注意到,使用svn checkoutsvn export,你可以输入REV号作为--revision REV参数,并作为URL后面的@REV。第一种叫做手术修正,第二种叫做钉钉修正。请阅读SVNBook以获得更多关于peg和操作修订概念的信息