当从svn存储库中删除文件时,签出旧版本的用户仍然可以访问它们。这显然是源代码控制的一大优势。
是否可以从存储库中删除文件?我知道这会损害包含该文件的过去修订版的完整性。
例如,专有代码可能无意中被提交到开源项目的公共svn存储库。 是否有任何支持的方式将其从存储库中删除,因此即使回顾过去的修订版也无法检索它?
答案 0 :(得分:16)
http://subversion.tigris.org/faq.html#removal
在某些特殊情况下,您可能希望销毁文件或提交的所有证据。 (也许有人意外地提交了一份机密文件。)这并不容易,因为Subversion是故意设计的,永远不会丢失信息。修订是不可变的树,彼此建立在一起。从历史记录中删除修订版会导致多米诺骨牌效应,在所有后续版本中造成混乱,并可能使所有工作副本无效。
然而,该项目计划有朝一日实施一个svnadmin obliterate命令,该命令将完成永久删除信息的任务。 (见问题516。)
与此同时,您唯一的办法是svnadmin转储您的存储库,然后通过svndumpfilter(不包括坏路径)将转储文件传输到svnadmin load命令中。有关详细信息,请参阅Subversion手册的第5章。