2010-03-05 14 views
3

我有幾個文件是更新的一部分,它們在準備好之前被錯誤地提交給主幹。有沒有辦法'撤銷'這個簽出和滾存儲庫回到一個版本,同時仍然保存更改的文件在我的結帳?SVN從存儲庫中刪除更改,但將它們保留在我的結帳中?

我在Windows XP上使用tortiseSVN ver 1.6.5,如果這有什麼區別。

例如:我更新了一個文件,現在是修訂版659,此文件的以前版本是600.我想保留版本659在我的結帳中,但是使當前版本600再次成爲最新的版本版本660)。

我試着製作我當前版本的副本,將常規版本回滾到600,然後嘗試將其恢復,但它告訴我沒有更改提交。

回答

3

我通常會將我想保留的文件複製到臨時位置,執行回滾,然後將保存的文件複製回...儘管我知道我只是採取簡單的方法,那裏更好。

2

您需要reverse merge,而不是對舊版本的更新。

比方說,你剛剛提交的修訂(並希望回滾)爲42

# rollback 
svn merge -c -42 
svn commit 
# now r43 is good but we want r42's version of foo.c in our working copy 
svn merge -c -43 foo.c 
-1

理想情況下,你會使用「更新至版本」後,將恢復你的工作拷貝到指定的版本號你可以承諾回來。爲了簡單起見,我會在獲取當前工作目錄的副本之後執行,然後在更新後移動副本。

+0

這不行;更新舊版本後無法提交。你必須做一個反向合併,否則SVN會說沒有改變提交。更新到舊版本不算作改變。 – 2010-03-06 19:00:44

+0

你說得對,邁克爾,我的腦子已經褪色了。有關如何在Tortoise中執行此操作的詳細信息,請訪問:http://www.coderenaissance.com/2008/11/how-to-revert-or-rollback-file-using.html – 2010-03-06 20:12:36

相關問題