Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从SVN中永久删除文件?_Svn_Repository_History_Purge - Fatal编程技术网

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

如何从SVN中永久删除文件?,svn,repository,history,purge,Svn,Repository,History,Purge,这一问题最初在2009-2013年间十分活跃,有各种各样的例子: 等等 目前,所有来源都指向一个糟糕的解决方案: 现在,解决方案不会那么糟糕,如果它只是像: 对文件进行转储 要删除的筛选文件: svndumpfilter排除文件\u name\u需要\u被删除\u.txt--删除空的revs--重新编号revsresult.dump 将筛选的转储文件加载到新的repo目录中 但是,当您使用SVN重命名、分支等时,您需要跟踪所有依赖项和--删除空rev--重新编号rev 现在我们

这一问题最初在2009-2013年间十分活跃,有各种各样的例子:

等等

目前,所有来源都指向一个糟糕的解决方案:

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

  • 对文件进行转储
  • 要删除的筛选文件:
  • svndumpfilter排除文件\u name\u需要\u被删除\u.txt--删除空的revs--重新编号revsresult.dump

  • 将筛选的转储文件加载到新的repo目录中
  • 但是,当您使用SVN重命名、分支等时,您需要跟踪所有依赖项和
    --删除空rev--重新编号rev


    现在我们进入了2016年第三季度,Debian的SVN为1.8。是否有新的解决方案面世?

    简短回答

    不,将来也不会

    更长的答案

    “永不丢失数据”和“历史是不变的”(承诺一次-永远承诺)是SVN的基础、核心原则,因此-对历史和内容的操作必须是硬的,不明显的肮脏的黑客和把戏,而不是嵌入“功能”。你必须:

    • 思考
    • 承诺前

    我将用一些参考资料来扩展lazybacker的答案

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

    首先。它于2001年开放(!)并引发了许多支持和反对实施它的讨论。这表明他在这方面取得了一些进展,也为我们指明了方向

    已经有一段时间没有碰过了:

    >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日);之后的其他则与存储库维护相关

    在开发人员的邮件列表中,这是对它作为外部工具的附加引用:

    期待维修、分析和离线是完全合理的 用于访问磁盘数据上FSF的筛选(删除)工具

    ,主要围绕使用svn dumpfilter展开。尽管对于大多数人来说,为可能发生的事情转储和导入存储库是不可能的

    因为,我不会说它永远不会被实施。但是,由于(正如Lazy Badger所提到的)内容的永久删除违背了Subversion最初的设计和目的,因此它的实现可能是一个漫长而困难的过程


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

    有没有可能让这听起来不像是一个纯粹的咆哮?使用
    --删除空的revs--重新编号revs
    是个坏主意,因为您会改变修订号。最好留下一个填充版本,通过过滤删除日志消息
    ,就像默认情况下
    svndumpfilter
    一样。谢谢你的完整回答,先生。另外,我完全不知道存放在某处的文件可能会无意中变得大量(想想日志,或者在我的情况下,是“设置”)无意中包含一大堆solr集合的存档)。