Svn 如何从Subversion中删除文件的所有跟踪?

Svn 如何从Subversion中删除文件的所有跟踪?,svn,Svn,是否可以从SVN中删除包含所有版本历史记录的文件?例如,如果您添加一个包含机密财务信息的文件只是为了进行备份,然后意识到它位于所有开发人员都能看到的SVN子目录中……是的,但这并不容易。您必须是运行Subversion服务器的服务器上的管理员。然后使用svnadmin dump转储存储库,使用svndumpfilter排除适当的文件,然后重新构建存储库。这是一项成本高昂的操作,对于大型存储库来说需要很长时间 有关更多详细信息,请参见在Subversion一书中也给出了如何做到这一点。如前所述,这

是否可以从SVN中删除包含所有版本历史记录的文件?例如,如果您添加一个包含机密财务信息的文件只是为了进行备份,然后意识到它位于所有开发人员都能看到的SVN子目录中……

是的,但这并不容易。您必须是运行Subversion服务器的服务器上的管理员。然后使用
svnadmin dump
转储存储库,使用
svndumpfilter
排除适当的文件,然后重新构建存储库。这是一项成本高昂的操作,对于大型存储库来说需要很长时间


有关更多详细信息,请参见在Subversion一书中也给出了如何做到这一点。

如前所述,这将需要转储和过滤。但是,这里有一些问题可能会让人感到痛苦(例如,如果文件已移动或路径已更改)。我刚刚经历了一个非常类似的过程,并在这里仔细地记录了它:

一个很好的防故障方法是防止提交可能会导致这些问题的代码——例如,作为第一个过程,您可以有一个预提交钩子将检查的文件扩展名的白名单。故障保护在这里没有帮助。我们有一个文档部分,里面有Word文件。我在那里创建了一个包含下一阶段计划的备份,包括时间线、成本、一切,并承诺进行备份:(