如何从SVN中永久删除文件?
这一问题最初在2009-2013年间十分活跃,有各种各样的例子:如何从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 现在我们
svndumpfilter排除文件\u name\u需要\u被删除\u.txt--删除空的revs--重新编号revsresult.dump
--删除空rev--重新编号rev
现在我们进入了2016年第三季度,Debian的SVN为1.8。是否有新的解决方案面世?简短回答 不,将来也不会 更长的答案 “永不丢失数据”和“历史是不变的”(承诺一次-永远承诺)是SVN的基础、核心原则,因此-对历史和内容的操作必须是硬的,不明显的肮脏的黑客和把戏,而不是嵌入“功能”。你必须:
- 思考
- 承诺前
>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集合的存档)。