2010-05-15 69 views
0

我想获得我的SVN信息库中给定文件的所有版本。例如,假设文件ThirdPartyAssembly.dll被选中了3次,是否有一个命令会让我获得我HD上的所有版本(例如ThirdPartyAssembly.dll.v1,ThirdPartyAssembly.dll.v2,ThirdPartyAssembly.dll.v3,等等。)?如何获取给定文件的所有版本?

谢谢!

回答

2

没有开箱即用的命令,但您可以构建使用log -q命令输出的简单脚本。

[email protected] /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/[email protected] file.rev.14 

等,每个版本,你会得到一堆file.rev.XX

2
  1. 用鼠标右键单击所选文件ThirdPartyAssembly.dll i n在HD上的工作副本,并出现一个弹出式菜单。

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

  3. 该窗口包含了所有的在你的文件的版本检查

  4. 右键点击一个鼠标名单你想要的,会弹出一个菜单。

  5. 形成弹出式菜单选择“保存修改为...”,您可以将其保存在您的高清无论你喜欢的任何地方。

+0

我有98个版本的文件,有没有办法让批处理文件做到这一点? – Martin 2010-05-15 14:36:55

+0

谢谢Marco!这是一个很好的解决方案,但是当我选择多个修订版本时,“保存修订版本...”不可用。 – Martin 2010-05-15 14:40:33

+0

@Martin:“我有98个修改......”我不知道,你在谈论你的问题中的3/4修订。那我不知道。 – 2010-05-15 14:50:14

0

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

但是,那么说,你到底究竟在做什么?也许有更好的方法?

+0

我正准备按照我在问题中所说的去做。我需要在我的机器上获取文件的所有版本(二进制)。谢谢! :) – Martin 2010-05-15 14:38:14

相关问题