2011-11-16 62 views
0

今天我試圖從subversion(版本#140)加載我的項目以前的版本,只發現在版本120中發生了錯誤的提交:嘗試從版本加載任何版本的項目120開始導致丟失文件等。因此,有效地,修訂120+是不可用的。回滾顛覆歷史條目

但是,我仍然有一個完全沒問題的未提交工作副本的計劃是在visual studio中修訂141。

我真的很不熟悉SVN的命令,不想把它弄糟! 將存儲庫返回到可行狀態並將HEAD版本更新爲與我的工作副本/ 141相匹配的最佳策略是什麼?

我在VS2010中使用AnkhSVN 2.3。服務器不在本地,但我可以訪問SVN的命令行。

謝謝!

p.s我假設我將失去修改120-140:只要提交141應用在120-140中進行的所有淨更改就可以了。

+0

的可能重複的[AnkhSVN的撤銷/恢復提交](http://stackoverflow.com/questions/4723745/ankhsvn-undo-revert-a-commit) –

回答

3

我不知道你是什麼意思不好犯,但你可以考慮執行「反向合併」,這將在修訂版141,並更新你的工作拷貝,並把它作爲轉142

取決於你的SVN客戶端,有更簡單的方法來實現這一點。在Tortoise SVN中,您可以打開日誌,選擇rev 119,右鍵單擊並選擇「還原到此版本」

如果您使用的是命令行,請檢出單獨的工作副本,轉到工作副本並執行反向合併

svn merge -r HEAD:119 http://your_svn_url 

考慮的章節閱讀http://svnbook.red-bean.com/關於 「撤消更改」


更新:我錯誤地輸入119 199

+0

'壞'提交,我的意思是我犯了一些東西,似乎已經塞滿了一切一個主要方法。例如雖然它列出了提交120,但試圖在該修訂上嘗試各種功能會將該消息返回爲'提交120不存在'的效果。類似於任何文件提交後120. 合併拒絕工作,所以,基於你的答案,我想我已經得到了一個轉儲到119,與轉儲啓動一個新的存儲庫,併合併到那。感謝您將我帶入正確的軌道:) – user495625

+0

如果您僅僅意味着提交您不想要的東西,並且希望HEAD在執行「壞」提交時擁有狀態,那麼我認爲我提供的方式應該是要走的路。轉儲/恢復似乎是爲了這樣的目的而矯枉過正。 –

0

AnkhSVN歷史記錄查看器具有選項'恢復從此修訂更改'和'恢復到此修訂',它會自動處理這些情況。

爲了從本修訂R119還原更改等效於svn merge -c -r119 http://your_svn_url(-c R119等效於-r 119:118)

還原爲此修訂則相當於svn merge -r HEAD:119