乌龟 SVN 修订历史记录

3

我想知道 TortoiseSVN 会保留多长时间的修订历史记录。比如我一年前通过仓库浏览器删除了一个文件,我现在还能够恢复这个文件吗?

如果我可以恢复这个文件,我也想知道如何永久删除早期版本的文件以及相关的修订历史记录,以便将来没有人能够访问该文件。这种操作是否可能?由于我经常进行更新和删除,认为文件已被永久删除,导致仓库的文件系统现在变得杂乱无章。请建议如何解决这个问题。


2
这个问题更多地涉及到Subversion而不是TortoiseSVN(它只是Subversion的一个前端)。将其重新标记为svn - Bert F
2个回答

4
乌龟SVN实际上只是访问Subversion存储库的一种简单方式。引用Subversion FAQ中关于如何永久删除文件的说法:
有一些特殊情况下,您可能想要销毁文件或提交的所有证据。(也许某人不小心提交了一份机密文件。)这并不容易,因为Subversion被故意设计为永远不会丢失信息。修订是不可变的树,它们相互构建。从历史记录中删除修订将导致多米诺骨牌效应,在所有后续的修订中创建混乱,并可能使所有工作副本无效。
然而,该项目计划在未来实现一个名为svnadmin obliterate的命令,该命令将完成永久删除信息的任务。(请参阅问题516。)
与此同时,您唯一的选择是svnadmin dump您的存储库,然后将转储文件通过svndumpfilter(排除错误路径)管道传输到svnadmin load命令中。有关此详细信息,请参见Subversion书的第5章
基本上,您正在将整个存储库打包成一个单独的文件,运行命令从该软件包中删除对给定路径的所有引用,然后将该软件包转换为一个新的不同的存储库。 将旧存储库替换为新存储库,并且您就可以使用它了。
除此之外,正如它所提到的那样,所有客户端的工作副本可能会失效。而且这确实需要能够访问服务器。您正在运行自己的SVN服务器,对吗?

1

http://svn.haxx.se/users/archive-2005-05/1040.shtml

有特殊情况下,您可能想要销毁文件或提交的所有证据。(也许有人意外提交了机密文件。)这并不容易,因为Subversion被故意设计成永远不会丢失信息。修订是不可变的树,它们相互建立。从历史记录中删除一个修订版本将引起多米诺骨牌效应,在所有后续修订版本中创建混乱,并可能使所有工作副本无效。
然而,该项目计划在未来实现一个svnadmin obliterate命令,以完成永久删除信息的任务(请参见问题516)。
与此同时,您唯一的选择是svnadmin dump您的存储库,然后通过svndumpfilter(排除错误路径)将转储文件导入到svnadmin load命令中。有关详细信息,请参阅Subversion书的第5章。
来源:http://subversion.apache.org/faq.html#removal

它说我们不能永久删除一个文件。还有其他的方法吗? - rahul
有没有简单的方法?我不明白他在说什么管道、转储等等。 - rahul

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