我正在为fast-export/fast-import编写Plastic SCM但我在处理名称中包含空格的目录和文件时遇到问题。
例如,git fast-export
之类的东西:
git mv "new directory" "second directory"
最终导出为:
D new directory/hello.c
M 100644 :1 second directory/hello.c
而不是“move
”(R)
操作。名称中包含空格的文件也是如此。
有没有办法正确处理?
这是否意味着Git无法处理带空格的路径上的重命名?
使用以下实例编辑:
我在提交时有这样的事情:
R src/samples/sampledata src/samples/samplebase
* R src/samples/samplebase/Test.Workflow.xml src/samples/samplebase/new/Test.Workflow.xml
并且无法导入说
fatal: Path src/samples/samplebase/Test.Workflow.xml not in branch
所以,据我所知,它不支持移动目录,然后移动文件里面的内容......这有点奇怪,不是吗?
答案 0 :(得分:2)
git fast-import
确实在“Handling rename”部分提到:
导入重命名的文件或目录时,只需删除旧名称并在相应的提交期间修改新名称。 Git在事后执行重命名检测,而不是在提交期间显式执行。
所以你的例子似乎遵循了这个逻辑。
不要忘记Git不是版本目录,只有blob(即带有相关路径的文件内容)。
要添加到已修改的问题:
git mv
。 2011年,OP has posted a question on the old gmane list
问题是currently (2017) discussed in Git for Windows (git-for-windows/git
issue 908)。