* Why is git log on large repos slower when outputting to tty?
@ 2024-10-17 17:46 Henry Qin
2024-10-18 4:22 ` Jeff King
0 siblings, 1 reply; 3+ messages in thread
From: Henry Qin @ 2024-10-17 17:46 UTC (permalink / raw)
To: git
Details in my Stackoverflow question:
https://stackoverflow.com/questions/79099095/why-is-git-log-significantly-slower-when-outputting-to-a-tty
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Why is git log on large repos slower when outputting to tty?
2024-10-17 17:46 Why is git log on large repos slower when outputting to tty? Henry Qin
@ 2024-10-18 4:22 ` Jeff King
2024-10-18 4:28 ` Henry Qin
0 siblings, 1 reply; 3+ messages in thread
From: Jeff King @ 2024-10-18 4:22 UTC (permalink / raw)
To: Henry Qin; +Cc: git
On Thu, Oct 17, 2024 at 10:46:17AM -0700, Henry Qin wrote:
> Details in my Stackoverflow question:
>
> https://stackoverflow.com/questions/79099095/why-is-git-log-significantly-slower-when-outputting-to-a-tty
My first thought was "decorations", and indeed somebody gave that answer
in the stack overflow thread. The default for log.decorate is "auto",
which will turn them on when output is to a tty. You can set it to
"false" to disable it.
As for why decorations are slow: it is necessarily going to be at least
linear in the number of refs, since we have to build the reverse mapping
up front. Do you have a lot of refs? What does "git for-each-ref | wc
-l" say?
-Peff
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Why is git log on large repos slower when outputting to tty?
2024-10-18 4:22 ` Jeff King
@ 2024-10-18 4:28 ` Henry Qin
0 siblings, 0 replies; 3+ messages in thread
From: Henry Qin @ 2024-10-18 4:28 UTC (permalink / raw)
To: Jeff King; +Cc: git
Hi Jeff,
Thanks for your reply!
This was actually discussed in the comment thread on SO as well.
Yes, I do have 15618 refs in that repo, and turning off decoration
indeed fixed the performance issue!
Thanks,
~Henry
On Thu, Oct 17, 2024 at 9:23 PM Jeff King <peff@peff.net> wrote:
>
> On Thu, Oct 17, 2024 at 10:46:17AM -0700, Henry Qin wrote:
>
> > Details in my Stackoverflow question:
> >
> > https://stackoverflow.com/questions/79099095/why-is-git-log-significantly-slower-when-outputting-to-a-tty
>
> My first thought was "decorations", and indeed somebody gave that answer
> in the stack overflow thread. The default for log.decorate is "auto",
> which will turn them on when output is to a tty. You can set it to
> "false" to disable it.
>
> As for why decorations are slow: it is necessarily going to be at least
> linear in the number of refs, since we have to build the reverse mapping
> up front. Do you have a lot of refs? What does "git for-each-ref | wc
> -l" say?
>
> -Peff
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-10-18 4:28 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-17 17:46 Why is git log on large repos slower when outputting to tty? Henry Qin
2024-10-18 4:22 ` Jeff King
2024-10-18 4:28 ` Henry Qin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).