【问题标题】:permanently delete a folder永久删除文件夹
【发布时间】:2017-02-23 21:05:33
【问题描述】:

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

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

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

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

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

我现在的想法是:

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

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

【问题讨论】:

  • 即使您删除了托管的 SVN 文件,第 3 方主机也会在其服务器备份中保留您的旧文件。您只能希望备份被加密并保持这种状态。您应该就此联系 Atlassian。
  • folder 替换为file 就可以了:stackoverflow.com/questions/2050475/… 但是@bmkorkut 关于在云中备份文件的论点是非常有效的。如果他们正确地进行备份,您将永远从您的 repo 的所有副本中取出该文件夹
  • @eckes 感谢您提供该链接。 svnadmin obliterate 本来不错,但我明白为什么它不存在。我想我现在需要弄清楚如何在我们自己的 repo 上执行它之前进行测试。

标签: svn


【解决方案1】:

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

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

【讨论】:

  • 感谢您的回答。不知道 svndumpfilter,至少在导入时可以节省一些时间。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-30
    • 2016-06-15
    相关资源
    最近更新 更多