Here are the clone timings for the test repo mentioned above (exact test run commands below): Test/time in secĪs you can see the "no smudge filter" solution is more than 50 times faster than the GIT_LFS_SKIP_SMUDGE flag on my I will try to create a git-core patch which allows to deactivate a git config value on git clone (e.g. I also tested the true command (test B2) is to measure the overhead of calling an external process. See this gist for a git clone wrapper using this approach. The best I came up with was to set the LFS filter to the cat command (test B1). Unfortunately I was not able to run git clone with a deactivated config. The problem with this approach is that LFS is deactivated globally and that might cause trouble with parallel Git/Git-LFS processes. Ideally we would deactivate the LFS filter on the initial clone all together which I tried with test C. The git-lfs binary is ~10MB and it takes quite some time to run it even if it does nothing due to the GIT_LFS_SKIP_SMUDGE flag (test A). However, disabling the smudge filter with a variable is still slow. Of course the daemon should be optional.ĭo you think this idea is worth exploring? Do you see an easier way to tackle this I know. However, what if we could convince the Git core team to merge a patch that (optionally) makes Git talking to a local socket instead of executing a process for Git filters? Then we could run a Git-LFS daemon kind of thing and I imagine the checkout and other operations could be much faster. As far as I understand the design of Git-LFS there is not much we can do about it. 10k files means 10k process executions which is, of course, horribly slow on Windows. The reason for this slow checkout is, as you probably already know, the invocation of the Git-LFS process via the Git attribute filters. consider this repo with 15k LFS files:Ĭheckout time on my Mac with SSD is around 10min (which is OK).Ĭheckout time on Windows with SSD is well over an hour (which is not so nice). We started using Git-LFS for all binary files and experienced very slow checkouts for a repository with +10k binaries.Į.g. We are using Git-LFS at my company and in general we are really happy as it nicely solves the binary files problem in Git.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |