从svn仓库中删除文件是否可行?

7
当从svn仓库中删除文件时,用户可以通过检出旧版本来访问这些文件。这显然是源代码控制的伟大优势之一。
是否可能从仓库中删除文件?我知道这会影响包含该文件的过去版本的完整性。
例如,专有代码可能会意外提交到开源项目的公共svn仓库中。是否有任何支持的方法可以将其从仓库中删除,以便即使查看过去的修订版本也无法检索到它?
1个回答

16

http://subversion.tigris.org/faq.html#removal

有些特殊情况下,你可能想要销毁某个文件或提交的所有痕迹。(比如说有人不小心提交了一份保密文件。)不过这并不容易,因为Subversion故意设计成永远不会丢失信息。每一个修订版本都是建立在彼此之上的不可变树状结构。从历史记录中删除一个修订版本会引起一连串的连锁反应,导致所有后续的修订版本混乱不堪,并有可能使所有工作副本无效。

不过该计划未来实现一个 svnadmin obliterate 命令,以便实现永久删除信息的任务。(详见问题516。)

与此同时,你唯一的选择就是执行 svnadmin dump 命令将 repository 进行备份,然后通过 svndumpfilter(排除坏路径)将 dumpfile 管道传递到 svnadmin load 命令中。详情请参阅Subversion书的第5章。


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