回答
答案是在Subversion FAQ:
有一些特殊情况下,您可能 要破坏的 所有证据文件或提交。 (也许有人 不小心犯了一个机密 文件)。这并不是那么容易,因为 Subversion被故意设计成 永不丢失信息。修订版本是 不可变的树,它建立在另一个 上。从 历史中删除修订将导致多米诺骨牌效应, 在所有后续 版本中创建混乱并可能使所有工作副本无效 。
该项目的计划,然而,有一天 实施svnadmin的 泯命令这将 来进行永久删除 信息的任务。 (参见问题516)
在此期间,你唯一的办法是 到svnadmin的转储你的资料库,然后 管转储文件通过 过滤流(不包括坏路径) 到svnadmin的负载命令。有关详细信息,请参阅 Subversion书的第5章 。
不,我不相信。
如果你确实需要从SVN历史记录中完全删除文件,我认为唯一的方法是做类似于倾销存储库,用svndumpfilter过滤出你不想要的文件,然后重新创建来自转储的存储库。
你为什么要这样做?
我有一个项目,我想彻底从我的回购中删除。 – Marcin 2010-03-28 10:27:35
这是如何做到这一点在Linux上:
/>svnadmin dump /path/to/repos > proj.dump
/>cat proj.dump | svndumpfilter exclude somefolder > cleanproj.dump
/>service svn stop
/>BACKUP /path/to/repos/conf /path/to/repos/hooks (all custom configuration for this repository)
/>DELETE /path/to/repos
/>svnadmin create /path/to/repos
/>RESTORE /path/to/repos/conf /path/to/repos/hooks
/>svnadmin load /path/to/repos < cleanproj.dump
/>service svn start
做
我假设你在同一个仓库下谈论多个项目:
myrepo/
project1/
project2/
如果你只是想让一个项目在不与存储库历史结合的情况下“消失”,那么如果你使用的是一个认证,你可以简单地隐藏这条路径利用authz的授权机制。换句话说,你是而不是使用'svn + ssh'来访问版本库。
假设我的authz中已经有一个名为'everyone'的组。在我的authz我会设置像这样:
[/project1]:
@everyone =
我想删除它不隐藏, 谢谢。 – Marcin 2010-03-30 10:44:05
- 1. 验证SVN + Jenkins的所有修订版
- 2. svn日志不显示所有修订
- 3. SVN合并与修订号
- 4. SVN diff在android项目中的所有strings.xml文件之间2修订
- 5. Tortiose SVN修订
- 6. SVN修订图
- 7. 修订号码与多项目回购
- 8. Maven SVN修订号
- 9. SVN回去修订
- 10. svn问题:将所有.svn目录移出项目目录
- 11. 如何返回所有订单的所有订单项目?
- 12. 针对丢失修订版的项目的SVN最佳实践
- 13. 显示每个NetBeans项目文件的svn修订版本号
- 14. 在C源代码中包含项目的SVN修订版
- 15. 比较文件的目录与svn修订版
- 16. 乌龟SVN没有正确更新到HEAD修订
- 17. 在文件中搜索及其所有SVN修订版
- 18. 在Bash中打印所有svn修订日期
- 19. 如何通过所有修订(历史)重命名SVN分支?
- 20. Svn mergeinfo加星标修订
- 21. SVN修订版关键字
- 22. 删除SVN修订版
- 23. 龟SVN修订历史
- 24. JMX bean中的SVN修订
- 25. 在修改svn时,以前的所有修订版本是否都已更新?
- 26. SVN:列出存储库中所有项目的所有分支
- 27. NetBeans远程项目与svn
- 28. Openstack修改所有项目配额
- 29. Android Listview修改所有项目
- 30. Rails从所有订单中获取所有项目
感谢那,这里是一个很好的文章:http://blog.projectnibble.org/2008/03/01/subversion-obliterate-the-forgotten-feature/干杯 – Marcin 2010-03-28 10:50:16