git快速导出格式和空格

时间:2011-01-21 09:51:54

标签: git plasticscm

我正在为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

所以,据我所知,它不支持移动目录,然后移动文件里面的内容......这有点奇怪,不是吗?

1 个答案:

答案 0 :(得分:2)

git fast-import确实在“Handling rename”部分提到:

  

导入重命名的文件或目录时,只需删除旧名称并在相应的提交期间修改新名称。 Git在事后执行重命名检测,而不是在提交期间显式执行。

所以你的例子似乎遵循了这个逻辑。

不要忘记Git不是版本目录,只有blob(即带有相关路径的文件内容)。


要添加到已修改的问题:

  • 移动目录意味着,如果在Git中导入,则必须在处理完所有文件后删除源(目录)(即导入,重命名或不重命名)
  • 在Git中导入文件时,移动是经典的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)