【问题标题】:Git slow when cloning to Samba shares克隆到 Samba 共享时 Git 很慢
【发布时间】:2012-01-05 17:02:46
【问题描述】:

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

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

我们使用的是 1Gbits/sec 连接,与本地使用相比,GIT 真的很慢。 我们的存储库大小为 ~900 MB

samba 共享上的 git status 大约需要 3 分钟才能完成,无法使用。

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

有人有想法吗?

感谢您的宝贵时间。

伊曼纽尔。

【问题讨论】:

  • 听起来你最好直接登录到有问题的 SAMBA 机器。换句话说,尝试像这样通过网络使用 Git 会非常慢,因为您的系统在评估之前通过网络提取 Git 信息(即 Git 状态)。如果你有某种实际的远程访问(如 SSH、远程桌面等),我相信 Git 命令的响应时间会大大增加。

标签: linux performance git networking samba


【解决方案1】:

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

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

  • 检查目录中的所有文件
  • 对每个目录重复

因此,不是为共享创建单个持久连接,而是为存储库中的每个文件创建一个持久连接,并且使用 900MB 共享,即使使用快速连接也会很慢。

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

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

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

【讨论】:

  • 这是我希望它工作的方式,但我们过去使用 SVN 的工作流程完全相同,而且查找修改文件的速度明显更快。 SVN 是否有不同的方法来识别更改的文件?
猜你喜欢
  • 2015-09-23
  • 2015-12-06
  • 2013-03-23
  • 2022-11-10
  • 2019-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多