从命令行检出Subversion的特定版本

我想使用命令行在Subversion中检出文件夹的特定版本。

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

 TortoiseProc.exe /command:checkout <url> 

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

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

 $ svn up -rXXXX 

ref: 从命令行的Subversion中检出一个特定的版本

 svn checkout url://repository/path@1234 

要么

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

任何使用TortoiseProc而不是正常的svn命令行的理由?

我会使用:

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

(得到修改1234)

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

请记住,TortoiseSVN是一个GUI客户端,这个自动化指南向您展示了如何让TortoiseSVN对话框显示来收集用户input。 如果你想写一个不需要input的脚本,你应该使用官方的Subversion命令行客户端。

使用Subversion 命令行svn.exe客户端 。 使用命令行客户端,您可以运行

  • 在REV版本中签出工作副本:

    1. svn checkout --revision REV https://svn.example.com/svn/MyRepo/trunk/

    2. svn checkout https://svn.example.com/svn/MyRepo/trunk/@REV

  • 将您的本地工作副本更新到REV版本:

    svn update --revision REV

  • 在REV版本中导出(即下载)文件或开发分支:

    1. svn export --revision REV https://svn.example.com/svn/MyRepo/trunk/

    2. svn export https://svn.example.com/MyRepo/trunk/@REV

您可能会注意到,在svn checkoutsvn export您可以inputREV号码作为--revision REV参数,并在URL后面@REV 。 第一个被称为操作性修订,第二个被称为peg修正。 阅读SVNBook了解更多关于挂钩和操作修订概念的信息 。

svn checkout修改你的仓库在另一台服务器上的位置

使用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被检出到当前目录。

我相信这个语法是/rev:<revisionNumber>

文档可以在这里find

你可以试试

 TortoiseProc.exe /command:checkout /rev:1234 

得到修订1234。

我不是100%确定/rev选项是兼容checkout ,但我从一些TortoiseProc文档的想法。

看来你可以使用版本库浏览器。 单击右上angular的修订button并将其更改为所需的修订版本。 然后在浏览器中右键单击您的文件,然后使用“复制到工作副本”,但更改将检出的文件名,以避免冲突。

你将不得不直接使用svn:

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

 svn help co 

给你一点帮助。

转到文件夹并使用命令:

 svn co {url}