我想获取SVN存储库中给定文件的所有版本。例如,假设文件ThirdPartyAssembly.dll被检查了3次,是否有一个命令可以获取我HD上的所有版本(例如ThirdPartyAssembly.dll.v1,ThirdPartyAssembly.dll.v2,ThirdPartyAssembly.dll.v3,等)?
谢谢!
答案 0 :(得分:2)
没有开箱即用的命令,但您可以构建使用log -q
命令输出的简单脚本。
zerkms@honeypot /var/www/cv $ svn log -q index.html
------------------------------------------------------------------------
r17 | zerkms | 2010-04-21 21:47:16 +1100 (Wed, 21 Apr 2010)
------------------------------------------------------------------------
r16 | zerkms | 2010-04-21 21:37:03 +1100 (Wed, 21 Apr 2010)
------------------------------------------------------------------------
r15 | zerkms | 2010-04-21 21:36:46 +1100 (Wed, 21 Apr 2010)
------------------------------------------------------------------------
r14 | zerkms | 2010-04-21 21:32:37 +1100 (Wed, 21 Apr 2010)
... etc
因此您只需要用您喜欢的脚本语言解析第一列
之后就这样做了:
svn copy http://server/full/path/to/file@14 file.rev.14
等,对于每个版本,您将获得大量file.rev.XX
答案 1 :(得分:2)
右键单击HD上工作副本中所选文件ThirdPartyAssembly.dll,然后会出现一个弹出菜单。
从弹出菜单中选择TortoiseSVN>显示日志,出现一个窗口
该窗口包含文件的所有已签入版本的列表
右键单击所需的鼠标,会出现一个弹出菜单。
从弹出菜单中选择“将修订保存到...”,您可以将其保存在您喜欢的任何地方。
答案 2 :(得分:0)
您可以在每个版本上运行diff命令,以使CVS生成旧文件的副本。如果有很多旧版本,你甚至可以编写脚本。
但是那说,你到底想要做什么呢?也许有更好的方法?