Emmanuel
Emmanuel

Reputation: 21

Git slow when cloning to Samba shares

We are deploying a new development platform.

We have a really complicated environment that we cannot reproduce on developer's computers so people cannot clone the GIT repository on their computer.
Instead, they clone the repository into a Mapped network drive (SAMBA share) thats is the DocumentRoot of a Website for the developer in our servers Each developer has is own share+DocumentRoot/website and so they cannot impact people this way.
Developers have Linux or Windows as Operating system.

We are using 1Gbits/sec connection and GIT is really slow comparing to local use. Our repository size is ~900 MB.

git status on samba share takes about 3mins to accomplish, that's unusable.

We tried some SAMBA tuning, but still, it's really slow.

Has someone an idea?

Thank you for time.

Emmanuel.

Upvotes: 2

Views: 2178

Answers (1)

JaredPar
JaredPar

Reputation: 754763

I believe git status works by simply looking for changes in your repository. It does this by examining all of the files and checking for ones that changed. When you execute this against a samba, or any other share, it's having to do the inspection over a network connection.

I don't have any intimate knowledge of the git implementation but my imagination is that it essentially boils down to

  • Examine all files in directory
  • Repeat for every directory

So instead of creating a single persistent connection to the share it's creating one for every single file in the repository and with a 900MB share that's going to be slow even with a fast connection.

Have you considered having the following work flow instead?

  • Have every developer clone to their local machine
  • Do work on the local machine
  • Push changes to their share when they need to deploy / test / debug

This would avoid the use of git on the actual share and eliminate this problem.

Upvotes: 4

Related Questions