On 06/15/2011 09:30 PM, Andrew Cameron wrote: > Some git operations (notably checkouts) are taking a very long time to execute. > Here is a shell session which illustrates the problem. > > $ time git branch foo > git branch foo 0.01s user 0.00s system 77% cpu 0.016 total Creating a branch is just a matter of creating a new ref. In this case, you're doing it on the currently checked out ref. That's a constant-time operation that is always very quick. > $ time git checkout foo > Switched to branch 'foo' > git checkout foo 11.73s user 0.18s system 99% cpu 11.937 total If this sequence of commands is accurate, that's a bit weird. If you've got another branch checked out first and then switch it would be understandable, considering the size of the repository. We should probably still do a tree-by-tree comparison to see which files are changed though, but I thought that's already done to avoid superfluous work and allow worktree changes to carry over to other branches. What version of git are you using? > $ time git checkout master > Switched to branch 'master' > git checkout master 11.62s user 0.18s system 99% cpu 11.813 total > $ git count-objects -v > count: 953 > size: 527012 > in-pack: 153432 > packs: 7 > size-pack: 1986072 > prune-packable: 0 > garbage: 0 > These figures are nowhere near as interesting as those from git ls-files | wc -l after the checkout is completed. -- Andreas Ericsson andreas.ericsson@xxxxxx OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231 Considering the successes of the wars on alcohol, poverty, drugs and terror, I think we should give some serious thought to declaring war on peace. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html