【发布时间】:2010-11-28 13:54:41
【问题描述】:
我想使用命令行检查Subversion 中文件夹的特定修订。
我没有看到在TortoiseProc.exe 中指定修订号的选项,
TortoiseProc.exe /command:checkout <url>
如何获得我想要的修订? TortoiseProc.exe 是我想做的正确工具吗?
【问题讨论】:
标签: svn command-line tortoisesvn
我想使用命令行检查Subversion 中文件夹的特定修订。
我没有看到在TortoiseProc.exe 中指定修订号的选项,
TortoiseProc.exe /command:checkout <url>
如何获得我想要的修订? TortoiseProc.exe 是我想做的正确工具吗?
【问题讨论】:
标签: svn command-line tortoisesvn
如果你已经在本地签出了它,那么你可以cd 到它被签出的地方,然后使用这个语法:
$ svn up -rXXXX
参考:Checkout a specific revision from subversion from command line
【讨论】:
svn revert 在特定文件上,或 svn revert --depth infinity 递归重置
svn info --show-item revision 显示的数字与我输入的数字不同。
要么
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。见 note in TortoiseSVN's Manual:
记住 TortoiseSVN 是一个 GUI 客户端,而这个自动化指南 向您展示如何使 TortoiseSVN 对话框出现以收集用户 输入。如果你想写一个不需要输入的脚本,你 应该改用官方的 Subversion 命令行客户端。
使用 Subversion command-line svn.exe client。使用命令行客户端,您可以
签出 REV 修订版中的工作副本:
svn checkout --revision REV https://svn.example.com/svn/MyRepo/trunk/
svn checkout https://svn.example.com/svn/MyRepo/trunk/@REV
将您的本地工作副本更新为 REV 修订版:
在 REV 版本中导出(即下载)文件或开发分支:
svn export --revision REV https://svn.example.com/svn/MyRepo/trunk/
svn export https://svn.example.com/MyRepo/trunk/@REV
您可能会注意到,使用svn checkout 和svn export,您可以输入REV 编号作为--revision REV 参数,并在URL 后面输入@REV。第一个称为手术修订,第二个称为钉修订。 Read SVNBook for more information about peg and operative revisions concept.
【讨论】:
使用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>
可以在here找到相关文档
【讨论】:
你可以试试
TortoiseProc.exe /command:checkout /rev:1234
获取修订版 1234。
我不能 100% 确定 /rev 选项与 checkout 兼容,但我从一些 TortoiseProc documentation 中得到了这个想法。
【讨论】:
你必须直接使用svn:
svn checkout URL[@REV]... [PATH]
和
svn help co
为您提供更多帮助。
【讨论】:
看来您可以使用存储库浏览器。单击右上角的修订按钮并将其更改为所需的修订。然后在浏览器中右键单击您的文件并使用“复制到工作副本...”,但更改要检出的文件名,以避免冲突。
【讨论】:
转到文件夹并使用命令:
svn co {url}
【讨论】:
co?我觉得这个答案需要一些扩展/解释