On 25/05/2024 06:29, Jeff King wrote:
On Thu, May 23, 2024 at 02:19:26PM +0100, Tom Hughes wrote:
Add a configuration optione to allow output from the promisor
fetching objects to be suppressed/
This allows us to stop commands like git blame being swamped
with progress messages and gc notifications from the promisor
when used in a partial clone.
I'm not at all opposed to providing a way to suppress this, but I feel
like in the long run, the more fundamental issue is that git-blame kicks
off a zillion fetches as it traverses. That's not only ugly but it's
also horribly inefficient.
This is true. One thing I found that makes things a lot more
efficient if you're using ssh as the transport is to enable
persistent multiplexing in .ssh/config with something like:
Host git.example.com
ControlMaster auto
ControlPath /run/user/%i/ssh/control.%C
ControlPersist 1m
SendEnv GIT_PROTOCOL
which avoids each fetch having to setup and authenticate a
new ssh session.
In an ideal world we'd queue all of the blobs we need, do a single
fetch, and then compute the blame on the result. That's probably easier
said than done, though we have done it in other spots (e.g., for
checkout).
That would certainly be an excellent improvement, yes.
Tom
--
Tom Hughes (tom@xxxxxxxxxx)
http://compton.nu/