我使用 git-p4 导入了一个大型 repo,发现我有一些奇怪的混合大小写的文件名,例如:
dirA/DIRb/file1.txt
然后像这样的其他文件:
DIRa/dirB/FILE2.txt
等等。因为 git-p4 使用快速导入,这些以这种方式进入 repo。这导致 Git 神秘地声称存在未跟踪的目录,这些目录绝对不是未跟踪的,并且其中没有新文件。我从阅读这个问题中发现:
特别是 slayerIQ 的回答,这可以通过重命名有问题的目录以具有匹配的情况来解决。事实上,在一些文件只有一个案例格式的情况下,这修复了它。但对于我上面提到的那些混杂的,它什么也没做。这种列表证实了我对这个案子的怀疑:
git ls-tree --name-only -r branch
我考虑过使用历史重写来尝试修复它,但这似乎非常重量级,除非我必须这样做,否则我有点犹豫(树是 ~25K 文件)。另一方面,我在干净的树上执行“git status”并获得大约 35 个“未跟踪”路径的列表。所以有点站不住脚。
如果需要,我可以从头开始克隆 git-p4,但我怀疑混合大小写路径来自 Perforce 本身。SmartGit 的树没有这个问题,并且将确切的树复制到新的 repo 工作正常(因为它已正确添加)。
关于如何进行的任何想法?
谢谢 :)