我有一个共享文件夹,从我的主机 -> 在我的虚拟机上的客户机中(Mac OS X 主机,RedHat 客户机)。这个共享文件夹是在主机上创建的,我在客户机上做了一些类似 git checkout 等的操作。问题是,在客户机上运行像 git status 这样的命令需要太长时间。这是已知的问题还是有解决方法呢?(对于非共享文件夹,在主机或客户机上都可以正常运行 git status)。
git prune && git gc
进行清理无法访问的对象和垃圾回收。您还可以执行git repack -Adf
尝试重新打包所有内容并查看是否有任何更改。 git status
通过遍历工作树并在每个文件上调用stat()来限制速度。如果该调用很慢(网络驱动器或虚拟化方面的问题),则状态命令将表现不佳。
git fsck
和git count-objects
是另外两个要使用的命令。如果有很多(> 200)对象,事情开始变慢。然后从那个仓库克隆到更好的文件系统中,进行工作,然后将更改推回。
性能不是GA共享文件夹的目标,简单性才是。
如果您想要更好的性能,则考虑设置真正的网络共享,使用virtio-net NIC和客户机中适当的驱动程序。