{"action":"created","issue":{"url":"https://api.github.com/repos/github/git-lfs/issues/931","labels_url":"https://api.github.com/repos/github/git-lfs/issues/931/labels{/name}","comments_url":"https://api.github.com/repos/github/git-lfs/issues/931/comments","events_url":"https://api.github.com/repos/github/git-lfs/issues/931/events","html_url":"https://github.com/github/git-lfs/issues/931","id":126464239,"number":931,"title":"Git checkout slow with many LFS files","user":{"login":"larsxschneider","id":477434,"avatar_url":"https://avatars.githubusercontent.com/u/477434?v=3","gravatar_id":"","url":"https://api.github.com/users/larsxschneider","html_url":"https://github.com/larsxschneider","followers_url":"https://api.github.com/users/larsxschneider/followers","following_url":"https://api.github.com/users/larsxschneider/following{/other_user}","gists_url":"https://api.github.com/users/larsxschneider/gists{/gist_id}","starred_url":"https://api.github.com/users/larsxschneider/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/larsxschneider/subscriptions","organizations_url":"https://api.github.com/users/larsxschneider/orgs","repos_url":"https://api.github.com/users/larsxschneider/repos","events_url":"https://api.github.com/users/larsxschneider/events{/privacy}","received_events_url":"https://api.github.com/users/larsxschneider/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2016-01-13T16:55:36Z","updated_at":"2016-01-18T18:37:38Z","closed_at":null,"body":"Hi,\r\n\r\nwe are using Git-LFS at my company and in general we are really happy as it nicely solves the binary files problem in Git. We started using Git-LFS for all binary files and experienced *very* slow checkouts for a repository with +10k binaries.\r\n\r\nE.g. consider this repo with 15k LFS files:\r\nhttps://github.com/larsxschneider/lfstest-manyfiles\r\n\r\nCheckout time on my Mac with SSD is around 10min (which is OK).\r\nCheckout time on Windows with SSD is well over an hour (which is not so nice).\r\n\r\nThe reason for this slow checkout is, as you probably already know, the invocation of the Git-LFS process via the Git attribute filters. 10k files means 10k process executions which is, of course, horribly slow on Windows. As far as I understand the design of Git-LFS there is not much we can do about it.\r\n\r\nHowever, 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. Of course the daemon should be optional.\r\n\r\nDo you think this idea is worth exploring? Do you see an easier way to tackle this problem? \r\n\r\nThanks,\r\nLars"},"comment":{"url":"https://api.github.com/repos/github/git-lfs/issues/comments/172618886","html_url":"https://github.com/github/git-lfs/issues/931#issuecomment-172618886","issue_url":"https://api.github.com/repos/github/git-lfs/issues/931","id":172618886,"user":{"login":"larsxschneider","id":477434,"avatar_url":"https://avatars.githubusercontent.com/u/477434?v=3","gravatar_id":"","url":"https://api.github.com/users/larsxschneider","html_url":"https://github.com/larsxschneider","followers_url":"https://api.github.com/users/larsxschneider/followers","following_url":"https://api.github.com/users/larsxschneider/following{/other_user}","gists_url":"https://api.github.com/users/larsxschneider/gists{/gist_id}","starred_url":"https://api.github.com/users/larsxschneider/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/larsxschneider/subscriptions","organizations_url":"https://api.github.com/users/larsxschneider/orgs","repos_url":"https://api.github.com/users/larsxschneider/repos","events_url":"https://api.github.com/users/larsxschneider/events{/privacy}","received_events_url":"https://api.github.com/users/larsxschneider/received_events","type":"User","site_admin":false},"created_at":"2016-01-18T18:37:38Z","updated_at":"2016-01-18T18:37:38Z","body":"Process creation on Windows is just slower (see [here](http://stackoverflow.com/questions/47845/why-is-creating-a-new-process-more-expensive-on-windows-than-linux) for a few arguments). This slowness has nothing to do with `git` or `git-lfs`.\r\n\r\nFor the fun of it you can start the `cat` command a 1000 times on different systems:\r\n```time bash -c 'for i in {1..1000}; do cat /dev/null; done'```\r\nOn my OS X machine that takes 1.5 sec and on Windows 26 sec :smile: "}}