在Subversion中获取已删除文件夹的最新版本

15

我需要获取从我们的代码库中已经删除很久的文件夹的内容:

  • 我仍然知道文件夹的名称
  • 我不知道它被删除的版本
  • 我不知道它被删除的日期
  • 在父目录的历史记录中没有任何信息(即没有评论提到文件夹被删除)

svn log 似乎没有帮助:

$ svn log deleted_folder
svn: 'deleted_folder' is not under version control

svn co也无济于事。

$ svn co URL/deleted_folder

我该如何找到已删除文件夹的最后一个修订版本?

编辑:一种方法是通过暴力反向检查每个修订版本,但由于有超过10K个版本,这个选项只适用于紧急情况。而且我真的觉得肯定有更好的方法。


我不确定这是否有效,但是尝试进入已删除目录的父目录,然后执行 svn log -v . | grep deleted_folder 命令,看看能否帮助您找到删除它的版本。 - Michael Burr
1
谢谢@MichaelBurr,问题很简单。实际上,你需要更多的东西,因为grep仅会给出那一行的信息,但我可以将输出重定向到文件中,然后查找版本号。请将其发布为答案,以便我可以接受它。 - Matteo
@MichaelBurr 还需要检查给定版本的父文件夹:svn co -rREVISION .../parent/deleted_folder 不起作用。 svn co -rREVISION .../parent 可以使用。我会检出很多不必要的东西,但它可以工作。 - Matteo
2个回答

13

你可以通过进入被删除目录的父目录,使用以下命令找到该目录被删除时的版本:

 svn log -v . > somefile

然后在编辑器中搜索somefile,查找包含目录名称删除记录的版本记录。


3
注意:svn log -q -v 命令会稍微更好一些。 - Lazy Badger

6

您可以使用以下命令查找修订版本:

svn log -v | grep "D /deleted_folder" -C 5

然后,根据此问题的答案将修订版本复制到当前版本:

查看已删除文件的历史记录


谢谢,-C 5 可能不足够,但我可以将 svn log 的结果存储到文件中,然后手动查找修订版本。 - Matteo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接