Subversion(Tortoise)的阁楼在哪里?

时间:2020-03-06 15:02:26  来源:igfitidea点击:

糟糕,我需要一段时间前删除的文件中的一些信息。在CVS中,我只是去ATTIC找到它,如何在SVN中找到文件,而不必回到存在该文件的修订版(特别是令人讨厌,因为我不知道删除时真的是一个星期前,两个几周前...)

解决方案

浏览所在目录的SVN日志,找到删除该目录的修订版本。在底部窗格中,右键单击该文件,然后选择"将修订版本保存到.."选项。

为了找到将其删除的修订版本,请在"显示日志"的"操作"列中查找文档的图标,该图标的左下角带有X。

CVS中的"阁楼"更多地是实现细节。由于文件历史记录位于",v"文件本身中,因此无法从存储库中完全删除该文件,因此CVS会将其移到一边。

Subversion使用了更复杂的存储库存储机制,不需要以这种方式将文件移开。我认为没有一种简单的方法可以查询文件所在的最新修订版本,但是我们应该可以使用" svn ls -rrev"轻松找到它。在这种情况下,修订版可以是Subversion接受的任何内容,以指示修订版的编号,日期等。只需回溯历史记录直到找到它,然后继续前进,直到找到它存在的最后一个修订版。

更新:@AviewAnew关于检查文件所在目录的日志有一个好主意。由于文件删除实际上是对包含它的目录的更改,因此以这种方式查找文件消失的位置应该很容易。

svn log --verbose

将向我们显示我们删除的内容。
然后,我们可以

svn copy --revision <last_revision_with_deleted_file>

获取已删除文件的工作副本。
这不比从CVS中删除文件更难。