颠覆中的阁楼(乌龟)在哪里?

时间:2008-10-02 17:58:53

标签: svn tortoisesvn

哎呀,我需要一些我之前删除的文件中的信息。在CVS中我只是去ATTIC找到它,如何在SVN中找到一个文件而不必回到它存在的修订版(特别烦人,因为我真的不知道什么时候我删除了 - 一周前,两周前......)

3 个答案:

答案 0 :(得分:6)

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

为了帮助您找到将其删除的修订版本,请在“显示日志”的“操作”列中查找其左下角带有X的图标。

答案 1 :(得分:3)

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

Subversion使用更复杂的存储库存储机制,不需要以这种方式将文件移到一边。我不认为有一种简单的方法可以查询存在文件的最新版本,但是您应该可以使用“svn ls -r rev ”轻松找到它。在这种情况下, rev 可以是Subversion接受的任何一个指示修订的东西 - 数字,日期等。回到历史记录中直到找到它,然后前进直到找到它存在的最后修订版。

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

答案 2 :(得分:2)

svn log --verbose

会显示您删除的内容。 然后你可以做一个

svn copy --revision <last_revision_with_deleted_file>

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