簡體   English   中英

git svn導入帶有尾隨空格的分支

[英]git svn importing a branch with a trailing space

我正在使用git svn將svn存儲庫導入git。 我在Windows Server 2008 R2上使用Git-1.8.0-preview20121022。

導入已經運行了一段時間,並成功獲取了前4000個修訂版本。 但是,它現在似乎遇到了帶有尾隨空格的分支名稱,並且已經崩潰了。

$ git svn fetch
Found possible branch point: https://10.10.10.2/svn/project/trunk => https://10.10.10.2/svn/project/branches/Release%2020110929%20, 3976
Found branch parent: (refs/remotes/Release 20110929 ) 691fb7f7d11cbb1afe35106f60a1d117ba415f4c
fatal: Unable to create 'd:/GitMigration/project/.git/svn/refs/remotes/Release 20110929 /index.lock': No such file or directory
read-tree 691fb7f7d11cbb1afe35106f60a1d117ba415f4c: command returned error: 128

該分支不再存在,因此我無法以正常方式更改名稱。 該目錄的名稱中沒有尾隨空格,但是我找不到找到保留該空格的重命名方法。

有什么我可以做的嗎?

問題的根本原因-GIT創建的目錄帶有尾隨空格,但實際上其名稱被截斷了。 例如,Windows mkdir喜歡這樣做。 GIT並不期望這樣,而是繼續使用帶空格的name並找不到目錄。

可以手動修復。 使用FAR,GnuWin或任何其他可以使目錄帶有尾隨空格的工具。 然后將“ d:/GitMigration/project/.git/svn/refs/remotes/Release 20110929”重命名為“ d:/GitMigration/project/.git/svn/refs/remotes/Release 20110929”。 如您所見,這就是GIT期望找到的目錄。

然后再次運行git svn fetch

最后,我放棄了在Windows中導入它的操作。 我敢肯定,那里有一些駭人聽聞的解決方案,但是在Linux中執行此操作然后將其從Windows遷移到Windows會容易得多。 只要分支不是最新的,這就可以正常工作。

沒有解決此問題的手動方法。 嘗試手動創建DIR。 為避免修剪尾隨空格,您可以在cmd命令中添加“ \\?\\在路徑的開頭”。 例如

mkdir "\\?\d:\GitMigration\project\.git\svn\refs\remotes\Release 20110929 "

暫無
暫無

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

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