2011-03-02 65 views
4

我在上一篇文章中談到了打破東西的言論。如何使用命令行SVN強制還原特定版本號?

我想恢復到修訂使用命令svn update -r 1124,但我一直如下收到錯誤消息:

[prague]$ svn update -r1024 
U app/webroot/css/group_themes/green.css 
U app/webroot/css/style.css 
Skipped 'app/webroot/index.php' 
svn: Failed to add directory 'app/webroot/images/users': an unversioned directory of the same name already exists 

我們得到了一些東西回來了,但仍沒有確切的版本我知道我昨天已經簽出...我認爲這將是更容易,只是恢復到一個特定的修訂:(

+0

發佈錯誤消息可能有助於... – 2011-03-02 08:37:54

+0

btw-我覺得我打之前正確的,「SVN更新124」所以,現在我只是想迫使它回到1124 ...我有我的機器上的本地副本,但認爲我可以「告訴」svn「撤消」可以這麼說 – adam 2011-03-02 08:44:58

+0

根據下面的評論的最新錯誤$ svn更新-r 1124 跳過的應用程序/ webroot /索引。php' svn:無法添加目錄'app/webroot/images/users':一個同名的未版本化的目錄已經存在 [prague] $ – adam 2011-03-02 09:05:02

回答

13

沒有承諾

嘗試在新的空目錄中籤出修訂版本1124,因此不會與已存在的目錄發生衝突。

因此svn checkout -r 1124在一個新的目錄中。

隨着犯

根據svn的手冊,如果你想提交以前的版本,你需要使用反向合併。請參閱http://svnbook.red-bean.com/en/1.0/ch04s04.html「撤消更改」。其次

svn commit -m "Rollback merge to revision 1124"

+0

並且一旦它檢出一個新的,我應該能夠提交版本1124命令行? – adam 2011-03-02 08:51:34

+1

同意。 (Re?)移動目錄工作,但完全使用另一個目錄結帳可能更容易。 – 2011-03-02 08:55:45

+0

是否有第二步...我檢查了新版本到我的本地計算機上的新文件夾中... – adam 2011-03-02 09:04:39

3

無法增加目錄

svn merge -c -1124 http://svn.example.com/repos/calc/trunk '應用程序/ Web根目錄/圖片/用戶':同名的版本目錄 已經存在

聲音對我來說很清楚:已經有一個具有該名稱的目錄,並且它沒有版本控制。您可以選擇兩件事:刪除目錄並重新更新,或者重命名(可能最聰明)並再次更新。另外,請自己幫忙,看看SVN的一些替代品,例如Mercurial,Bazaar或Git。我已經找到了開關是非常愉快;)

+0

感謝您的提示...生病肯定會嘗試那些 - 我認爲SVN /烏龜是我的代碼混亂的牌照...但它所做的一切都被帶走我害怕打破事情而不真正讓事情變得容易 - 甚至我的團隊知道這件事情也不會喜歡它 – adam 2011-03-02 08:58:02

0

你可以簡單地做使用

svn up -r 1124 

的更新修訂但是,這將不會讓你提交更改爲SVN需要您更新在可以提交之前將工作副本複製到HEAD。你可以做的反而是

svn merge -r HEAD:1124 yourFile 
svn ci yourFile -m "Reverting back to rev 1124 " 
相關問題