35 tortoise-svn version-control svn
我的代码存储库中的最新修订版已损坏并破坏了我的应用程序的稳定性。我想恢复到较早的版本。
但我不想简单地在我的工作副本上使用“revert”;我实际上想在我的回购中删除我的头部修订和之前的几个修订,从而将我的回购“恢复”到较早的修订,这将成为头部修订。有谁知道我会怎么做?
mar*_*tin 82
这对我有用。鉴于您将修订版 1234 作为 HEAD,并且您想要还原最后三个提交:
svnadmin create newrepo
svnadmin dump -r 0:1231 repo | svnadmin load newrepo
mv repo oldrepo
mv newrepo repo
Run Code Online (Sandbox Code Playgroud)
Fel*_*lix 12
也许这个链接可以帮助你:
http://www.sampablokuper.com/2009/03/27/svn-revert-to-revision/
引用:
切换到工作副本中的顶级目录(假设您要回滚整个工作副本)。
运行
svn revert
将工作副本的文件恢复到上次提交/签出时的状态。运行
svn status -v
以查看您的工作副本现在对应的修订号(它是svn status -v
生成列表中的最高修订号)。run
svn merge -rXX:YY
whereXX
是您在上一步中获得YY
的编号, 是您要还原到的修订编号。完毕!可能的例外是您的工作副本中
YY
最初进行修订时不存在的文件仍然存在,因为默认情况下 svn 不会删除内容。如果您想摆脱它们,请svn del [filename]
对它们中的每一个运行 a 。做得好!现在使用您的工作副本,就好像所有这些中间编辑从未发生过一样。当您准备好投入工作时,只需像往常一样使用 svn commit 即可!
小智 5
我知道这是一个老问题,但是,我刚刚找到了如何使用 Windows/TortoiseSVN 做到这一点。
正如评论所建议的那样,您不能“删除”修订版,但您可以做的是制作一个与您要恢复的修订版相同的最新修订版。
然后,您将去找其他检查过它的人,让他们更新并确保删除任何新文件。
此外,您需要确保每个人都知道该修订是什么,并可能更新描述。
小智 5
对我来说(VisualSVN,30-HEAD)是这样工作的:
del C:\Repositories\MyRepo\revs\0\30 del C:\Repositories\MyRepo\revs\0\29 del C:\Repositories\MyRepo\revs\0\28 del C:\Repositories\MyRepo\revprops\0\30 del C:\Repositories\MyRepo\revprops\0\29 del C:\Repositories\MyRepo\revprops\0\28 回声 27 > C:\Repositories\MyRepo\db\current