git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git checkout running very slowly (>12s)

From
ACAndrew Cameron <andrew@worksmartlabs.com>
Date
Jun 15, 2011, 23:16 UTC
Message-ID
<loom.20110616T010709-333@post.gmane.org>
In-Reply-To
<4DF9363F.6080009@op5.se>
Andreas Ericsson <ae <at> op5.se> writes:
> 
> On 06/15/2011 09:30 PM, Andrew Cameron wrote:
> > Some git operations (notably checkouts) are taking a very long time to 
execute.
Show 20 quoted lines
> > 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?

I suppose I forgot to illustrate that, when I created "foo" I was on "master". The order branch checkouts was master -> foo -> master, and both transitions took ~12s despite pointing to the same commit and using a clean working tree. I imagine you inferred all of that, but if not, now you know.

$ git --version git version 1.7.0.4

Show 17 quoted lines
> > $ 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.
> 

$ git checkout master Switched to branch 'master' $ git ls-files | wc -l 90831

Previous: Andreas EricssonNext: Andrew Cameron
Message 3 of 7 in “git checkout running very slowly (>12s)”
  1. Andrew CameronJun 15, 2011
  2. Andreas EricssonJun 15, 2011
  3. Andrew CameronJun 15, 2011
  4. Andrew CameronJun 20, 2011
  5. Jeff KingJun 21, 2011
  6. Jeff KingJun 21, 2011
  7. Andrew CameronJun 21, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.