如何从我的开发subversion存储库中删除旧版本?我保留了一个颠覆沙箱,我有许多测试项目,二进制文件等。我想偶尔修剪历史。
答案 0 :(得分:28)
以下是官方答复:
在某些特殊情况下,您可能希望销毁文件或提交的所有证据。 (也许有人意外地提交了一份机密文件。)这并不容易,因为Subversion是故意设计的,永远不会丢失信息。修订是不可变的树,彼此建立在一起。从历史记录中删除修订版会导致多米诺骨牌效应,在所有后续版本中造成混乱,并可能使所有工作副本无效。
然而,该项目计划有朝一日实施一个svnadmin obliterate命令,该命令将完成永久删除信息的任务。 (见问题516。)
与此同时,您唯一的办法是svnadmin转储您的存储库,然后通过svndumpfilter(不包括坏路径)将转储文件传输到svnadmin load命令中。有关详细信息,请参阅Subversion书籍的第5章。
答案 1 :(得分:5)
答案 2 :(得分:4)
您可以使用svndumpfilter。
然而,这不是一个推荐的事情。存储库应该(大多数情况下)仅附加数据库。由于数据库的集中性,可以容忍一定数量的数据突变,但它不应该是常规操作。
你应该为每个项目使用一个单独的存储库,而不是一个你想要不时修剪的包存储库。
答案 3 :(得分:2)
你真的不想修剪历史,那就是疯狂。
您可能希望删除旧分支,以便它们不会出现在您的svn浏览器中,但这与'svn rm'一样简单。修订版仍保留在版本控制系统中。