是否有一个命令从svn删除项目及其所有修订(总清理)?
欢呼声
答案 0 :(得分:6)
答案在Subversion FAQ:
您有特殊情况 可能想破坏所有的证据 文件或提交。 (也许有人 不小心承诺保密 文件。)这不是那么容易,因为 颠覆是故意设计的 从不丢失信息。修改是 不可改变的树,建立在一个 另一个。从中删除修订 历史将导致多米诺骨牌效应, 在随后的所有时间里制造混乱 修改和可能无效 所有工作副本。
然而,该项目有计划 有一天实现一个svnadmin 擦除命令哪个会 完成永久的任务 删除信息。 (见问题516。)与此同时,你唯一的办法就是 然后到svnadmin转储你的存储库 管道转储文件 svndumpfilter(不包括坏路径) 进入svnadmin加载命令。看到 Subversion书的第5章 有关这方面的详细信息。
答案 1 :(得分:1)
不,我不相信有。
如果你真的需要完全从SVN历史中删除文件,我认为唯一的方法就是做一些事情,比如转储存储库,用svndumpfilter过滤掉你不想要的文件,以及然后从转储中重新创建存储库。
你为什么要这样做?
答案 2 :(得分:0)
rm -rf
通常可以正常工作。
答案 3 :(得分:0)
这是在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
完成
答案 4 :(得分:0)
我假设你在谈论同一个存储库下的多个项目:
myrepo/
project1/
project2/
如果您只是希望项目“消失”而不会破坏存储库历史记录,那么如果您使用的是使用authz的身份验证机制,则可以简单地隐藏此路径。换句话说,您不使用'svn + ssh'来访问存储库。
假设我已经在我的authz中有一个名为'everyone'的小组。在我的authz我会设置类似的东西:
[/project1]:
@everyone =