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”之间的所有内容(包括空格)。