git svn导入一个带尾随空格的分支

时间:2012-11-19 16:21:08

标签: git svn

我正在使用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

此分支不再存在,因此我无法以正常方式更改名称。该目录在名称中没有尾随空格,但我找不到重命名它以保留空间的方法。

我能做些什么吗?

3 个答案:

答案 0 :(得分:1)

问题的根本原因 - GIT创建一个带有尾随空格的目录,但实际上它的名称是截断的。例如,Windows mkdir喜欢这样做。 GIT并不期望这样做并继续使用带有空格的名称而无法找到目录。

可以手动修复。使用FAR,GnuWin或任何其他可以创建具有尾随空格的目录的工具。然后重命名" d:/GitMigration/project/.git/svn/refs/remotes/Release 20110929" to" d:/GitMigration/project/.git/svn/refs/remotes/Release 20110929"。正如您所看到的那样,GIT希望找到的目录。

然后再次运行git svn fetch

答案 1 :(得分:0)

最后我放弃了在Windows中导入它。我确信有一些hacky解决方案,但是在Linux中执行此操作会更容易,然后将其从那里拉到Windows。只要分支不是最新的,这应该可以正常工作。

答案 2 :(得分:0)

此问题有手动解决方法。尝试手动创建DIR。 为避免修剪白色尾随空格,您可以在路径的开头添加" \?\;在cmd命令中。例如

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