When mirroring a repository with a lot of refs, there is a case where the client takes a long time to calculate the want OIDs. This is observable with Chromium's repository for example. $ mkdir testing $ cd testing $ git init . --bare $ git remote add origin master https://chromium.googlesource.com/chromium/src --mirror=fetch $ git fetch origin With the commands above, it takes a long time before sending a fetch request. I stopped the command after 15 minutes. Debugging this, it seems most of the time is spent on iterating the want refs to see OIDs are included there. This patch speeds up this process by using oid_set. Now the client can send a fetch request almost immediately. Masaya Suzuki (1): fetch: Cache the want OIDs for faster lookup builtin/fetch.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) -- 2.23.0.237.gc6a4ce50a0-goog