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

git svn导入带有尾随空格的分支,git,svn,Git,Svn,我正在使用gitsvn将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.1

我正在使用
gitsvn
将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
这个分支已经不存在了,所以我无法以正常方式更改名称。该目录存在时名称中没有尾随空格,但我找不到保留空格的重命名方法


对此我能做些什么吗?

最后我放弃了在Windows中导入这个。我敢肯定,有很多黑客解决方案,但在Linux中实现这一点,然后将它从那里拉到Windows,要容易得多。只要分支不是最新的,这应该可以正常工作。

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

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

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


然后再次运行
git svn fetch

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

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


然后再次运行
git svn fetch

有一个手动解决此问题的方法。尝试手动创建目录。 为了避免修剪尾随的空白,可以在cmd命令中添加“\?\在路径的开头”。e、 g

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

有一个手动解决此问题的方法。尝试手动创建目录。 为了避免修剪尾随的空白,可以在cmd命令中添加“\?\在路径的开头”。e、 g

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

在我的回答中,空格也被截断了。重命名为带有尾随空格的目录。只需复制/粘贴“无法创建”和“/index.lock”之间的所有内容(包括空格)。空格在我的回答中也被截断。重命名为带有尾随空格的目录。只需复制/粘贴“无法创建”和“/index.lock”之间的所有内容(包括空格)。