Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn 如何获取给定文件的所有版本?_Svn_Tortoisesvn - Fatal编程技术网

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

Svn 如何获取给定文件的所有版本?,svn,tortoisesvn,Svn,Tortoisesvn,我想在我的SVN存储库中获取给定文件的所有版本。例如,假设文件ThirdPartyAssembly.dll被检查了3次,是否有一个命令可以让我获得硬盘上的所有版本(例如ThirdPartyAssembly.dll.v1、ThirdPartyAssembly.dll.v2、ThirdPartyAssembly.dll.v3等) 谢谢 没有现成的命令,但是您可以构建使用log-q命令输出的简单脚本 zerkms@honeypot /var/www/cv $ svn log -q index.html

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


谢谢

没有现成的命令,但是您可以构建使用
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

等等,对于每个修订版,您将得到一堆
文件.rev.XX

没有现成的命令,但您可以构建使用
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
等等,对于每个修订版,您将得到一堆
文件.rev.XX

  • 用鼠标右键单击HD上工作副本中的选定文件ThirdPartyAssembly.dll,将出现一个弹出菜单

  • 从弹出菜单中选择on-OrtoiseSVN>Show log,将出现一个窗口

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

  • 用鼠标右键单击所需的菜单,将出现一个弹出菜单

  • 从弹出菜单中选择“将修订保存到…”,您可以将其保存到您喜欢的HD上

  • 用鼠标右键单击HD上工作副本中的选定文件ThirdPartyAssembly.dll,将出现一个弹出菜单

  • 从弹出菜单中选择on-OrtoiseSVN>Show log,将出现一个窗口

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

  • 用鼠标右键单击所需的菜单,将出现一个弹出菜单

  • 从弹出菜单中选择“将修订保存到…”,您可以将其保存到您喜欢的HD上


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


    但也就是说,你到底想在这里做什么?也许有更好的方法?

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


    但也就是说,你到底想在这里做什么?也许有更好的方法吗?

    我有98个版本的文件,有没有方法让批处理文件可以做到这一点?谢谢Marco!这是一个很好的解决方案,但当我选择多个修订时,“将修订保存到…”不可用。@Martin:“我有98个修订…”我不知道,你的问题中提到了3/4的修订。我不知道。@Marco:我还是喜欢你的解决方案!:)我将尝试编写脚本,否则我可能会一个接一个地这样做…:S@Martin:编写CLI脚本而不是GUI脚本不是更简单吗-SI有98个版本的那个文件,有没有办法让一个批处理文件可以做到这一点?谢谢Marco!这是一个很好的解决方案,但当我选择多个修订时,“将修订保存到…”不可用。@Martin:“我有98个修订…”我不知道,你的问题中提到了3/4的修订。我不知道。@Marco:我还是喜欢你的解决方案!:)我将尝试编写脚本,否则我可能会一个接一个地这样做…:S@Martin:编写CLI脚本而不是GUI脚本不是更简单吗-我正试图按照我在问题中说的去做。我需要在我的机器上获取文件(二进制)的所有版本。谢谢!:)我正试图按照我在问题中所说的去做。我需要在我的机器上获取文件(二进制)的所有版本。谢谢!:)