2012-02-25 55 views
2

我有一個在Google代碼中託管的項目。 我正在使用AnkSvn的Visual Studio。如何在谷歌代碼中回滾

我意外刪除了一個文件並提交。

雖然,因爲,我可以從代碼歷史下載已刪除文件的副本,我認爲回滾是一個更好的主意。或者換句話說,我想讓我的項目回到r22,而最新的(損壞的)版本轉到r24。

我對SVN或谷歌代碼都不熟悉,所以如何執行回滾?或者有關使用SVN的建議?

回答

1

右鍵單擊解決方案資源管理器中的解決方案,打開解決方案歷史記錄。從上下文菜單中選擇「查看解決方案歷史記錄」。

在這裏,您可以右鍵單擊svn修訂版並回滾到該修訂版,或者撤消特定修訂版。因此,在你的情況下,選擇r23和r24,並使用「恢復從此修訂更改」,或右鍵單擊r22並選擇「恢復到此修訂版」

+0

是的,這給了我一個方向。在做完你說的話之後,我看到損壞文件的圖標變成紅色方塊。然後我承諾,它說我的版本已過時,需要先更新。更新後,圖標顯示文件衝突。我右鍵單擊該文件,選擇「解決」,然後選擇「我的文件」。然後我再次提交,現在就成功! – Gqqnbig 2012-03-21 16:04:07

0

請參閱如何使用SVN命令行做http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.branchmerge.basicmerging.undo

的SVN的合併極爲常見的用途是回滾一個變化是 已經提交。假設你在/ calc/trunk的 工作副本上愉快地工作,並且發現在修訂303中改變了方式 ,修改後的integer.c完全是錯誤的。它從來不應該犯下。您可以使用svn merge來撤消工作副本中的 更改,然後將存儲庫的本地修​​改提交到 。所有你需要做的是指定一個反向差異。 (您可以通過指定--revision 303做到這一點:302,或等效 --change -303)

我不知道AnkhSVN的,但在TortoiseSVN中,您可以顯示日誌選擇其中一個版本,右鍵單擊並選擇還原到此版本還原此修訂版本中完成的更改。也許在Ankhsvn有類似的東西存在。

0

如果您只想撤消單個文件的刪除,但保留其餘的提交,則可以讓您svn cp -R<Revisionnumber before the file was deleted> <URL of the file> .重新生成該文件。這將創建一個歷史記錄,將刪除的文件「複製」到工作副本中。

由於我不知道AnkSvn,我描述了使用GUI工具創建這種副本的Tortoise-SVN方式,並希望AnkSvn的行爲方式類似。

打開存儲庫資源管理器,然後選擇刪除前的版本(搜索按鈕以選擇顯示的修訂版本)。然後將文件從存儲庫複製到工作副本中(在TortoiseSVN中,這是通過鼠標右鍵拖動來實現的)。