Subject: Re: bug#78194: `guix pull --list-generations' is extremely slow

From: Ludovic Courtès <[email-masked]>
Date: Wed, 14 May 2025 18:33:35 +0200

Hi,

Ian Eure <[email-masked]> writes:

> I’ve been frustrated by this before, but decided to measure things:
>
> `guix home list-generations' takes 3.535s to list 28 items.
> `guix system list-generations' takes 1.406s to list 35 items.
> `guix pull --list-generations' takes 232.599s to list 41 items.
>
> Why is `guix pull --list-generations' >100x slower than `guix system
> list-generations'?

Because for each pair of generations, it shows the corresponding news
entries (as per ‘guix pull --news’), and that part is quite expensive
because it involves a Git log traversal.

I think we should (1) optimize the news code (that’s
‘channel-news-for-commit’), and (2) if that’s not enough consider
keeping it off by default in ‘guix pull --list-generations’.

Thoughts?

Ludo’.