2010-07-01 114 views
11

假设我在修订版本50. 但是,我想恢复到版本45,并作为稳定版本提交。如何恢复到以前的SVN提交?

如何以最简单的方式做到这一点?

  1. 如果我想用一个文件做到这一点怎么办?
  2. 如果我想要在整个存储库中执行该操作,该怎么办?
+0

的可能的复制[还原一个svn文件夹到以前的版本(http://stackoverflow.com/questions/2324999/revert-a-svn-folder-to-a-先前版本)。请注意,svn不关心目标是文件,文件夹还是存储库的根目录。 – sbi 2010-07-01 06:49:21

回答

23

我我不确定你的意思是“作为稳定版本承诺”,但取决于你想要完成的工作,我建议:

SVN更新-r45
这会在修订45.

或衍合你的工作拷贝:

SVN合并-c -50,-49,-48,-47,-46
这将通过删除45到50之间的所有更改(通过反向合并)来更新您的工作副本。现在,如果您进行更改并提交,它将会像您已从存储库中删除46-50并进行HEAD修订(51?)是r45 +你的改变。

+0

,svn update -r PREV – diewland 2014-07-01 09:14:18

4

Reverse merge您要撤销的修订。这可以在一个或多个文件上完成。通过反向合并,您的工作副本将更改为没有该修订的状态,然后您可以提交。

-2

我想一个简单的方法应该是这样的:

  • 结账修订45到临时目录
  • 复制一个或全部文件到您的工作目录
  • 提交
+0

请参阅“为什么不使用修补程序?”在[SVN书](http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.branchemerge.basicmerging.stayinsync)中,为什么你应该避免手动合并。 – sbi 2010-07-01 06:48:38

+0

感谢您的提示!以前版本为 – splash 2010-07-01 07:58:56

0

可以使用

svn up -r 45 

简单地做一个更新修订但是,这将不会让你提交更改为SVN需要你更新你的工作副本的人面前,你可以提交。你可以做的反而是

svn merge -r HEAD:45 yourFile 
svn ci yourFile -m "Reverting back to rev 45"