Svn 从subversion提交中删除数据?

Svn 从subversion提交中删除数据?,svn,Svn,我最近将信息提交到一个文件中。只有几行高度机密的代码。我需要从subversion存储库中完全删除此信息。如何在不恢复和丢失更改的情况下执行此操作?只有一个文件?那么,是否可以删除对该文件的所有引用,然后重新提交正确的引用?我想您必须这样做 将错误提交和每个后续提交记录为一个或多个补丁 转储存储库 创建一个新的存储库 将错误提交之前的所有修订从转储导入存储库 按顺序重新应用每个修补程序(并在提交前删除几行机密信息) SVN提供了一个名为svndumpfilter的命令,允许您转储存储库并从中排

我最近将信息提交到一个文件中。只有几行高度机密的代码。我需要从subversion存储库中完全删除此信息。如何在不恢复和丢失更改的情况下执行此操作?只有一个文件?那么,是否可以删除对该文件的所有引用,然后重新提交正确的引用?

我想您必须这样做

  • 将错误提交和每个后续提交记录为一个或多个补丁
  • 转储存储库
  • 创建一个新的存储库
  • 将错误提交之前的所有修订从转储导入存储库
  • 按顺序重新应用每个修补程序(并在提交前删除几行机密信息)

SVN提供了一个名为
svndumpfilter
的命令,允许您转储存储库并从中排除路径。然后,将该转储文件加载到新的存储库中,该文件将消失

svnadmin dump/path/to/repos>dump.file
svndumpfilter排除路径/to/removenewdump.file
svnadmin load/path/to/newrepos
唯一的解决方案是在服务器端筛选存储库。您应该使用如下命令:

svnadmin create /path/to/newrepos

svnadmin dump /path/to/repos --incremental | svndumpfilter excdlude path/to/remove | svnadmin load /path/to/newrepos

你能等到Subversion 1.8发布吗?这时,执行了要求很高的删除命令(当然,除非他们决定将其移动到Subversion 1.9或2.0)

不,对吗

您唯一能做的就是取下存储库,进行
svnadmin转储
,使用
svndumpfilter
对其进行过滤以删除更改,然后使用
svnadmin load
重新加载存储库。这可以在单个管道中完成,但取决于您的存储库大小,这可能意味着停机几个小时


我已经做过好几次了。这一点都不好玩,尤其是当你不得不在凌晨2点做这件事的时候,因为当你的开发人员忙于使用你的存储库时,你无法取下它。

根密码,是吗?您是否控制存储库?可能是的重复项,但不完全是重复项。我猜我需要使用“删除”命令?但是如何更改?更改根密码会更容易。由于各种原因,这目前无法完成。值得注意的是,1.8.11中仍然没有删除,以防有人来到这里并感到兴奋。:)
svnadmin create /path/to/newrepos

svnadmin dump /path/to/repos --incremental | svndumpfilter excdlude path/to/remove | svnadmin load /path/to/newrepos