svn清除所有修订版的项目

时间:2010-03-28 10:13:51

标签: linux svn

是否有一个命令从svn删除项目及其所有修订(总清理)?

欢呼声

5 个答案:

答案 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 =