{"thread":{"id":"9459","subject":"git and larger trees, not so fast?","startedAt":"2007-08-09T16:06:56Z","lastAt":"2007-08-09T16:06:56Z","messageCount":1,"participants":["moe"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"50331","messageId":"20070809160655.GA19494@mbox.bz","threadId":"9459","inReplyTo":null,"subject":"git and larger trees, not so fast?","fromName":"moe","fromEmail":"moe-git@mbox.bz","sentAt":"2007-08-09T16:06:56Z","receivedAt":"2007-08-09T16:06:56Z","isPatch":false,"sender":{"key":"moe-git@mbox.bz","avatar":null},"body":"hi guys,\n\nearlier today i imported one of my larger trees\n(~70k files) into git and was quite disappointed\nby the performance.\n\ni made some tests on latest master branch\n(1.5.3.rc4.29.g74276) and it seems like git\nhits a wall somewhere above ~50k files.\n\ni'm seeing 'commit' timings of 30s and\nup as well as 'status' timings in the 10s\nballpark.\n\nhere's a test-case (should be safe to\ncopy/paste on linux, bash):\n\n#\n# first create a tree of roughly 100k files\n#\nmkdir bummer\ncd bummer\nfor ((i=0;i<100;i++)); do\nmkdir $i && pushd $i;\nfor ((j=0;j<1000;j++)); do\necho \"$j\" >$j; done; popd;\ndone\n\n#\n# init and add this to git\n#\ntime git init\ngit config user.email \"no@thx\"\ngit config user.name \"nothx\"\ntime git add .\ntime git commit -m 'buurrrrn' -a\n\n#\n# git-status, tunes in at around ~10s for me\n#\ntime git-status\ntime git-status\ntime git-status\n\n#\n# git-commit, takes a whopping 52s for me\n#\ndate >50/500\ntime git commit -m 'expose the turtle' 50/500\n\n\nregards,\nmoe\n"}]}