2010-07-01 113 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"