2008-09-25 56 views
1

這可能聽起來很愚蠢,但有時我遇到兩個版本的顛覆之間的版本衝突。我用sshfs在開發服務器上安裝一個目錄,然後用我的本地Vim編輯代碼。對於像更新,提交等顛覆的東西我在服務器上ssh並在那裏做。但是,有時我混淆了我的shell,並意外地在安裝目錄的本地shell中執行更新或提交。 Subversion退出時出現錯誤,這很好。但是,當我嘗試在我的ssh會話中在開發服務器上做同樣的事情時,subversion說工作目錄/ subversion的版本有誤。服務器上的Subversion版本比筆記本上的版本舊,所以我想我的(更新的)版本以某種方式升級工作目錄,以使它們與開發服務器上的舊版本不兼容。有時刪除.svn/lock文件會有所幫助,但前提是我在我的筆記本上執行了subversion命令後立即執行此操作。之後,當我在開發服務器上執行該命令時,鎖定文件消失,並且我看不到救援結帳的方法。如果存儲庫不那麼大,這不會那麼糟糕。特別是當我做出很多改變並且不能提交時。如何修復「升級」的顛覆工作目錄?

我看到目前唯一的解決辦法是複製我的地方更改的文件,刪除結賬,做一個完整的新的結算和文件複製回。

有沒有更好的解決辦法來拯救一個破碎的檢驗和/或更改?

UPDATE 常見問題Mikael Sundberg鏈接包含答案。我把它寫在這裏,因爲他沒有明確提及它。還有,可以降級升級庫腳本,當它是安全的:

http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/change-svn-wc-format.py

回答

0

我不知道如果我理解正確的話您的問題,但在這裏是一些提示:

第一個提示 - 你試過SVN 乾淨命令?

下一個可能是你沒用:),但很多人習慣使用CVS沒有意識到,SVN有功能類似的,所以我把它寫下來。

如果您使用Windows和Tortoise SVN client,您可以從上下文菜單(鼠標右鍵)中選擇顯示日誌命令。當出現簽入列表時,選擇最後一個好籤名,然後從上下文菜單命令中選擇恢復到此修訂版本

在其它情況下(未視窗也不烏龜SVN),調查documentation用於上述命令的命令行版本。

下一個提示可以幫助你避免混合你的貝殼。

你寫你使用SSH外殼 - 避免與混合shell會話我總是用不同的背景顏色爲每個服務器(和賬號),我登錄(即黑底白字的發展問題,黃在測試服務器上在海軍上,在生產服務器上在綠色上顯示黃色)。

這節省了我很多次:)。

+0

謝謝,但在版本庫升級之後,Subversion不再執行任何*命令,甚至沒有`log`或`status`,所以你的解決方案將無法工作。 – jkramer 2008-09-25 20:09:02