如何通过命令行检出特定的Subversion修订版本?

390

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

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

TortoiseProc.exe /command:checkout <url>

我要如何获取我想要的版本?TortoiseProc.exe 是我想做的正确工具吗?

10个回答

495

1
由于某些原因,这对我没有任何作用。仍然停留在旧版本。 - IgorGanapolsky
3
你是否在本地修改过你想要更新的文件? - user146043
你如何进行硬重置?(忽略冲突?) - Dilip Raj Baral
@DilipRajBaral 在特定文件上执行 svn revert,或者使用 svn revert --depth infinity 递归重置。 - Gavin S. Yancey
我如何确认这个命令执行成功了?svn info --show-item revision显示的数字与我输入的不同。 - Brent

341

两种可能:

svn checkout url://repository/path@1234
或者
svn checkout -r 1234 url://repository/path

10
我必须删掉“-r”后面的空格,这样“-r1234”才能正常工作。 - Elijah Lofgren

262
任何使用TortoiseProc而不是普通的svn命令行的原因吗?
我会使用:
svn checkout svn://somepath@1234 working-directory

(获取修订版本1234)


原因:Windows - user5248982

42

您绝不能将TortoiseProc.exe用作命令行Subversion客户端! TortoiseProc仅应用于自动化TortoiseSVN的GUI。请参阅TortoiseSVN手册中的注意事项

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

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

您可能会注意到,使用svn checkoutsvn export时,您可以将REV号作为--revision REV参数输入,也可以将其作为URL后面的尾随@REV。第一个称为操作版本,第二个称为定位版本。阅读SVNBook以获取有关定位和操作版本概念的更多信息

9

将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 修订版本被检出到当前目录。


6
我相信这个语法是/rev:<revisionNumber> 可以在这里找到相关文档:这里

3

你可以尝试

TortoiseProc.exe /command:checkout /rev:1234

获取版本1234。

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


2

您需要直接使用svn:

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

并且

svn help co

为您提供更多的帮助。


2
就我所见,我认为一个例子可以帮助解决问题。你是包括还是不包括括号?三个点呢?三个点后面的空格呢?哪些字符是字面量,哪些是占位符,哪些是为了占位符而添加的字符? - ahnbizcad

2

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


什么是代码库浏览器? - osullic

0

前往文件夹并使用以下命令:

svn co {url}

co是什么?我觉得这个答案需要更多的扩展和解释。 - osullic
1
它是“checkout”的缩写。您也可以使用svn checkout... - vpp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接