【问题标题】:SVN - completely remove revision from SVN serverSVN - 从 SVN 服务器中完全删除修订版
【发布时间】:2012-02-13 04:03:21
【问题描述】:

不幸的是,我向 SVN 提交了一个大文件夹(它有大约 1.4GB 和大约 10000 个文件,其中许多是二进制文件)。 有没有可能回到以前的版本并让 SVN 服务器忘记下一个版本已经完成?例如,此提交是修订版 120。所以我想制作最高修订版 119 并删除 120. 修订版的所有文件和 SVN db 设置。

我已尝试删除该文件夹,因此 121 提交已完成。然后我尝试合并修订版 121 和 119。但它没有帮助。 120版本还在系统中。

然后我想使用 svnsync 为 SVN 存储库创建一个镜像,但是没有选项可以设置我希望创建哪个版本的镜像。除非我没有找到这个选项。 (我想将修订从 0 设置为 119)。

你知道我能做些什么吗?是否有任何命令可以完全删除一个修订版,因为它从未发生过?

【问题讨论】:

标签: svn repository


【解决方案1】:

您必须转储存储库,然后重新加载它,跳过您不再需要的修订版。 (在您的示例中为 r120)

为此,请使用svnadmin dump 命令,然后使用svnadmin load 命令。

示例:

svnadmin dump c:\svn\my_repo -r0:119 > repo.dump
svnadmin load c:\svn\my_new_repo < repo.dump

在更复杂的情况下,您可能必须使用svndumpfilter,但我认为您的情况没有必要。

【讨论】:

  • 执行此操作并将其加载回原始存储库是否安全?在这种情况下,工作副本会发生什么,它们会有更高的修订号,它可以工作吗?
  • 我不希望工作副本保持其完整性。这应该不是问题 - 只需删除工作副本并签出新副本即可。
【解决方案2】:

你可以做以下两件事之一:

  1. 登录到您的 SVN 服务器,删除不需要的文件,然后注销。这将创建另一个修订版,但由于它是通过服务器界面完成的,因此发生故障的可能性很小。
  2. 恢复到修订版 119,进行一些小的更改,然后提交。通过accepting yours解决所有冲突。

【讨论】:

  • 谢谢,但是这将进行新的修订,不需要的仍然会留在那里
猜你喜欢
  • 2012-11-29
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 2011-04-22
  • 2020-12-07
  • 1970-01-01
  • 2011-02-13
  • 2010-10-28
相关资源
最近更新 更多