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