簡體   English   中英

使用冒號后 SVN 存儲庫在 Windows 上損壞

[英]SVN repository broken on Windows after using colon

我們在多操作系統環境中使用 svn。 我犯了一個錯誤,提交了一個包含冒號的文件,即bar:foobaa:foo 在 linux 下,這當然不是問題,但在 Windows 下:不是文件系統允許的字符。 在意識到我的錯誤后,使用svn mv重命名了來自 linux 的文件。

問題是當檢出包含:的版本時,Windows 上的 svn 會卡住。 考慮以下過程:

  1. 以最新狀態檢出存儲庫(即使用固定文件名)

  2. 簽出包含帶冒號的文件名的提交。 這導致以下情況:

添加了 foo

跳過阻礙工作副本 foo

警告! 一個或多個文件處於沖突狀態。`

  1. 現在嘗試使用svn co返回到更正后的版本會出現錯誤:

錯誤 'bar:foo' 不是目錄文件夾中的有效文件名`

  1. 沒有工作再試一次svn co

錯誤 XML 響應包含無效的 XML

錯誤格式錯誤的 XML:找不到元素`

現在存儲庫卡住了,即無法再簽出,因為您將始終收到最后一個錯誤。 請注意,這會創建一個不在存儲庫中的文件foo 我試圖刪除文件和/或使用svn cleanup 但是沒有任何成功,因為文件總是在svn嘗試執行實際更新之前恢復。

有沒有辦法修復本地svn? 或者是不惜一切代價進行新結帳並避免Windows下受影響的修訂的唯一方法?

所以我想了一個辦法來解決它。 基本思想是更新到最新版本,但只更新目錄本身,而不更新目錄中的文件。 這樣,所有文件都被刪除,而不是嘗試更新/恢復。 現在該目錄位於正確的修訂版上,我們也可以獲取當前修訂版的其余文件。

使用烏龜 svn:

  1. 轉到受影響的目錄

  2. 更新版本...

    1. 選擇最新版本

    2. 選擇更新深度“僅此項目”

    3. 按確定

  3. 更新版本...

    1. 選擇最新版本

    2. 選擇更新深度“完全遞歸”

    3. 按確定

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM