如何获取给定文件的所有版本?

时间:2010-05-15 14:26:41

标签: svn tortoisesvn

我想获取SVN存储库中给定文件的所有版本。例如,假设文件ThirdPartyAssembly.dll被检查了3次,是否有一个命令可以获取我HD上的所有版本(例如ThirdPartyAssembly.dll.v1,ThirdPartyAssembly.dll.v2,ThirdPartyAssembly.dll.v3,等)?

谢谢!

3 个答案:

答案 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)

  1. 右键单击HD上工作副本中所选文件ThirdPartyAssembly.dll,然后会出现一个弹出菜单。

  2. 从弹出菜单中选择TortoiseSVN>显示日志,出现一个窗口

  3. 该窗口包含文件的所有已签入版本的列表

  4. 右键单击所需的鼠标,会出现一个弹出菜单。

  5. 从弹出菜单中选择“将修订保存到...”,您可以将其保存在您喜欢的任何地方。

答案 2 :(得分:0)

您可以在每个版本上运行diff命令,以使CVS生成旧文件的副本。如果有很多旧版本,你甚至可以编写脚本。

但是那说,你到底想要做什么呢?也许有更好的方法?