Linux Git在克隆到Samba共享时变慢

Linux Git在克隆到Samba共享时变慢,linux,performance,git,networking,samba,Linux,Performance,Git,Networking,Samba,我们正在部署一个新的开发平台 我们有一个非常复杂的环境,无法在开发人员的计算机上复制,因此人们无法在他们的计算机上克隆GIT存储库。 相反,他们将存储库克隆到映射的网络驱动器(SAMBA share)中,该驱动器是服务器中开发人员网站的文档根 每个开发人员都有自己的共享+文档根/网站,因此他们不能以这种方式影响他人。 开发人员使用Linux或Windows作为操作系统 我们使用的是每秒1Gbit的连接,GIT与本地使用相比速度非常慢。 我们的存储库大小约为900MB samba共享上的git状态

我们正在部署一个新的开发平台

我们有一个非常复杂的环境,无法在开发人员的计算机上复制,因此人们无法在他们的计算机上克隆GIT存储库。
相反,他们将存储库克隆到映射的网络驱动器(SAMBA share)中,该驱动器是服务器中开发人员网站的文档根 每个开发人员都有自己的共享+文档根/网站,因此他们不能以这种方式影响他人。
开发人员使用Linux或Windows作为操作系统

我们使用的是每秒1Gbit的连接,GIT与本地使用相比速度非常慢。 我们的存储库大小约为900MB

samba共享上的git状态大约需要3分钟才能完成,这是不可用的

我们尝试了一些SAMBA调优,但仍然很慢

有人有主意吗

谢谢你抽出时间


Emmanuel.

我相信
git status
只需在存储库中查找更改即可。它通过检查所有文件并检查更改的文件来实现这一点。当您针对samba或任何其他共享执行此操作时,它必须通过网络连接进行检查

我对git实现没有任何深入的了解,但我的想象是,它本质上可以归结为

  • 检查目录中的所有文件
  • 对每个目录重复此操作
因此,它不是为共享创建一个单一的持久连接,而是为存储库中的每个文件创建一个持久连接,使用900MB的共享,即使使用快速连接也会很慢

您是否考虑过采用以下工作流程

  • 让每个开发人员克隆到他们的本地计算机
  • 在本地机器上工作
  • 当需要部署/测试/调试时,将更改推送到共享

这将避免在实际共享上使用
git
,并消除此问题

听起来你最好直接登录到SAMBA机器上。换句话说,像那样在网络上使用Git会非常慢,因为您的系统在评估Git信息(即Git状态)之前通过网络获取Git信息。如果您有某种实际的远程访问(如SSH、远程桌面等),我相信Git命令的响应时间会大大增加。这是我希望它能够工作的方式,但我们过去使用SVN来执行完全相同的工作流,查找修改过的文件的速度会明显加快。SVN是否有不同的方法来识别更改的文件?