4

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

4

3 回答 3

6

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

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

于 2008-10-02T18:03:06.923 回答
3

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

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

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

于 2008-10-02T18:05:59.430 回答
2
svn log --verbose

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

svn copy --revision <last_revision_with_deleted_file>

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

于 2008-10-02T18:10:36.190 回答