7

我知道 SVN 的全部意义在于永远无法永久删除任何内容,而我的问题与“永久删除”功能或类似功能无关。

我注意到代码已意外提交到我们的 SVN 存储库。这是属于另一家公司的代码,在产生任何法律影响之前,我需要想办法永久删除此代码,包括它曾经存在的所有痕迹。

注 1:此后还有其他代码修订。

注2:需要删除的所有代码都包含在一个文件夹下

注 3:SVN 托管在云端(Atlassian)中的第三方。

我现在的想法是:

  • 对所有修订进行 SVN 转储并在本地恢复
  • “删除”托管 SVN 中的所有数据(我该怎么做?)
  • 然后在每个文件夹的基础上同步修订,其中我排除了有问题的文件夹。我过去根据文件夹导入了修订历史记录,所以我知道这是可能的。

如果没有更简单的方法,我如何删除/清空整个 SVN 服务器或创建一个新服务器来替换当前服务器?同样,由于我们的 SVN 是由第三方托管的,我无法访问服务器本身的文件结构,但需要依赖 SVN 命令。

4

2 回答 2

2

svndumpfilter是一个命令行实用程序,用于通过排除或包含以一个或多个命名前缀开头的路径来从 Subversion 转储文件中删除历史记录。

基本上,您需要对存储库进行完整转储,从中过滤掉不需要的文件夹,然后将其余文件夹作为新存储库导入。但是由于您的存储库是由第三方托管的,我想您需要首先安排这种存储库访问(除非他们已经为此提供了一些接口)。

于 2012-07-06T13:45:01.667 回答
0

对于您计划中的 #1 和 #3,您可能会发现有用的 svnrdump 实用程序。它像 svnadmin 一样具有“转储”和“加载”命令,但可以与远程存储库一起使用。

于 2012-07-06T14:07:51.593 回答