1

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

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

对此我能做些什么吗?

4

3 回答 3

1

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

可以手动修复。使用 FAR、GnuWin 或任何其他可以创建带有尾随空格的目录的工具。然后将“d:/GitMigration/project/.git/svn/refs/remotes/Release 20110929”重命名为“d:/GitMigration/project/.git/svn/refs/remotes/Release 20110929”。如您所见,这是 GIT 期望找到的目录。

然后git svn fetch再次运行。

于 2015-03-20T05:45:25.443 回答
0

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

于 2013-01-28T16:56:11.987 回答
0

有一个手动解决此问题的方法。尝试手动创建 DIR。为避免修剪白色尾随空格,您可以在 cmd 命令中添加“\?\ at the beginning of the path”。例如

mkdir "\\?\d:\GitMigration\project\.git\svn\refs\remotes\Release 20110929 "
于 2016-02-18T09:36:31.210 回答