想要从我的 SVN 存储库中删除修订版本

想要从我的 SVN 存储库中删除修订版本

我的代码库中的最新修订版本已损坏,导致我的应用程序不稳定。我想恢复到较早的修订版本。

但我不想简单地在工作副本上使用“恢复”;我实际上想删除我的仓库中的头版修订版和之前的几个修订版,从而将我的仓库“恢复”到早期的修订版,该修订版将成为头版修订版。有人知道我该怎么做吗?

答案1

也许这个链接可以帮助你:

http://www.sampablokuper.com/2009/03/27/svn-revert-to-revision/

引用:

  1. 更改到工作副本中的顶级目录(假设您想要回滚整个工作副本)。

  2. 运行svn revert以将工作副本的文件恢复到您上次提交/签出时的状态。

  3. 运行svn status -v以查看您的工作副本现在对应的修订号(它是生成的列表中的最高修订号svn status -v)。

  4. 运行svn merge -rXX:YY其中XX您在上一步中获得的号码以及YY您要恢复到的修订版本号。

  5. 完成!可能的例外是,工作副本中YY最初修订时不存在的文件仍会存在,因为默认情况下 svn 不会删除任何内容。如果您想删除它们,请svn del [filename]对每个文件运行。

  6. 做得好!现在,您可以像从未发生过这些中间编辑一样操作您的工作副本。当您准备好提交您的工作时,只需像往常一样使用 svn commit 即可!

答案2

这对我来说很有效。假设你有修订版本 1234 作为 HEAD,并且你想恢复最后三个提交:

svnadmin create newrepo
svnadmin dump -r 0:1231 repo | svnadmin load newrepo
mv repo oldrepo
mv newrepo repo

答案3

对我来说(VisualSVN,30-HEAD)有效:

  删除 C:\Repositories\MyRepo\revs\0\30
  删除 C:\Repositories\MyRepo\revs\0\29
  删除 C:\Repositories\MyRepo\revs\0\28
  删除 C:\Repositories\MyRepo\revprops\0\30
  删除 C:\Repositories\MyRepo\revprops\0\29
  删除 C:\Repositories\MyRepo\revprops\0\28
  echo 27 > C:\Repositories\MyRepo\db\current
  

答案4

我知道这是一个老问题,但是,我刚刚发现如何使用 Windows/TortoiseSVN 来做到这一点。

正如评论所建议的,您不能“删除”修订,但您可以做的是制作一个与您想要恢复的修订相同的更新的修订。

  1. 检出您想要从中恢复修订的目录的存储库的 HEAD。
  2. 在 TortoiseSVN 中加载您想要恢复的最高级别目录(例如“Trunk”)的“显示日志”视图。
  3. 右键单击要删除的修订版本注意:这是您要删除的修订版本,而不是您要恢复到的修订版本。
  4. 选择“恢复此修订版的更改”。
  5. 出现提示时单击“是”。
  6. 正常地更新结帐,但更新至“HEAD”。
  7. 重新提交。

然后,您将联系所有已检查过该版本的人,让他们进行更新,并确保删除所有新文件。

此外,您需要确保每个人都知道该修订是什么,并可能更新描述。

相关内容