[英]SVN repository broken on Windows after using colon
我們在多操作系統環境中使用 svn。 我犯了一個錯誤,提交了一個包含冒號的文件,即bar:foo
和baa:foo
。 在 linux 下,這當然不是問題,但在 Windows 下:
不是文件系統允許的字符。 在意識到我的錯誤后,使用svn mv
重命名了來自 linux 的文件。
問題是當檢出包含:
的版本時,Windows 上的 svn 會卡住。 考慮以下過程:
以最新狀態檢出存儲庫(即使用固定文件名)
簽出包含帶冒號的文件名的提交。 這導致以下情況:
添加了 foo
跳過阻礙工作副本 foo
警告! 一個或多個文件處於沖突狀態。`
svn co
返回到更正后的版本會出現錯誤:錯誤 'bar:foo' 不是目錄文件夾中的有效文件名`
svn co
:錯誤 XML 響應包含無效的 XML
錯誤格式錯誤的 XML:找不到元素`
現在存儲庫卡住了,即無法再簽出,因為您將始終收到最后一個錯誤。 請注意,這會創建一個不在存儲庫中的文件foo
。 我試圖刪除文件和/或使用svn cleanup
。 但是沒有任何成功,因為文件總是在svn
嘗試執行實際更新之前恢復。
有沒有辦法修復本地svn? 或者是不惜一切代價進行新結帳並避免Windows下受影響的修訂的唯一方法?
所以我想了一個辦法來解決它。 基本思想是更新到最新版本,但只更新目錄本身,而不更新目錄中的文件。 這樣,所有文件都被刪除,而不是嘗試更新/恢復。 現在該目錄位於正確的修訂版上,我們也可以獲取當前修訂版的其余文件。
使用烏龜 svn:
轉到受影響的目錄
更新版本...
選擇最新版本
選擇更新深度“僅此項目”
按確定
更新版本...
選擇最新版本
選擇更新深度“完全遞歸”
按確定
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.