如何永久删除SVN中的文件?

时间:2016-08-30 08:19:40

标签: svn repository history purge

这个问题最初是在2009 - 2013年内开展的,有各种各样的例子:

等等。

目前,所有消息来源都指出了一个糟糕的解决方案:

现在,解决方案不会那么糟糕,如果它只是像:

  1. 转储到文件。
  2. 过滤要删除的文件:
  3. svndumpfilter exclude file_name_needs_to_be_removed.txt --drop-empty-revs --renumber-revs < source.dump > result.dump

    1. 将过滤后的转储文件加载到新的repo目录中。
    2. 但是当您使用SVN重命名,分支等时,您需要跟踪所有依赖项和--drop-empty-revs --renumber-revs

      所以现在我们在2016年第三季度,Debian拥有SVN 1.8。是否有任何新的解决方案被曝光?

2 个答案:

答案 0 :(得分:2)

我将通过一些参考文献扩展Lazy Badger的答案。

SVN集团将此功能称为“删除”。了解这一点有助于我们挖掘更多有关它的信息。

首先,here is the SVN group's JIRA issue about supporting obliteration。它于2001年开放(!)并且已经产生了许多讨论,包括支持和反对实施它。 last comment by a project committer on this issue表示他在此方面取得了一些进展,并指出我们a milestones/feature status page

development notes for this feature在某段时间内没有被触及过:

>svn ls http://svn.apache.org/repos/asf/subversion/trunk/notes/obliterate/ -v
1398429 stefan2               Oct 15  2012 ./
 878962 julianfo          872 Aug 20  2009 README
 952192 rhuijben         5175 Jun 07  2010 comparison.txt
1398429 stefan2          2488 Oct 15  2012 design-audit.html
1398429 stefan2          3839 Oct 15  2012 design-authz.html
1398429 stefan2         18664 Oct 15  2012 design-repos.html
1398429 stefan2          2500 Oct 15  2012 design-wc.html
 952192 rhuijben              Jun 07  2010 fspec-cc1/
 883799 julianfo              Nov 24  2009 fspec-dd1/
 952192 rhuijben         7742 Jun 07  2010 high-level-design.txt
 904301 neels                 Jan 28  2010 hooks/
 876577 hwright         39780 Mar 12  2009 obliterate-functional-spec.txt
1398429 stefan2          7541 Oct 15  2012 plan-milestones.html
 880336 julianfo              Oct 28  2009 presentations/
 952192 rhuijben        11266 Jun 07  2010 req-spec.txt
 887471 julianfo       290129 Dec 04  2009 schema-bdb-dd1-after.svg
 887471 julianfo       297789 Dec 04  2009 schema-bdb-dd1-before.svg

注意:最后一次“真实”提交是r906520(2010年2月4日);之后的其他人与存储库维护相关。

在开发人员的邮件列表the word "obliterate" hasn't been uttered since 2014上,这是对它作为外部工具的括号引用:

  

期望修复,分析和离线是完全合理的   过滤(删除)工具以访问FSFS磁盘数据。

Clunky work-arounds do exist,主要围绕使用svn-dumpfilter。虽然对于大多数人来说,倾销和导入存储库以获取可能经常发生的事情是不可取的。

因为it is on the roadmap,我不会说它永远不会被实施。但是,因为(正如Lazy Badger所提到的),面对Subversion的原始设计和目的,内容的永久删除过于苍蝇,实施可能是一个漫长而艰难的过程。

请记住标准的OSS免责声明:此项目主要由在业余时间为其做出贡献的个人组成。还有其他功能/修复程序具有比此更高的优先级,因此如果您想更改它,请让开发人员知道。

答案 1 :(得分:-1)

简短回答

不,将来也不会

更长的答案

&#34;永远不会丢失数据&#34;和&#34;历史是不可改变的&#34; (承诺一次 - 永远承诺)是SVN的基本核心原则,因此 - 操纵历史和内容必须是难以理解的脏黑客和技巧,而不是嵌入式&#34;功能&#34;。你必须:

  • 认为
  • 提交前