From: Derrick Stolee <email@example.com> To: Jeff King <firstname.lastname@example.org>, Jonathan Tan <email@example.com> Cc: firstname.lastname@example.org, email@example.com Subject: Re: [PATCH v2] send-pack: never fetch when checking exclusions Date: Fri, 11 Oct 2019 08:31:30 -0400 [thread overview] Message-ID: <firstname.lastname@example.org> (raw) In-Reply-To: <20191011061257.GD20094@sigill.intra.peff.net> On 10/11/2019 2:12 AM, Jeff King wrote: > On Tue, Oct 08, 2019 at 11:37:39AM -0700, Jonathan Tan wrote: > >> When building the packfile to be sent, send_pack() is given a list of >> remote refs to be used as exclusions. For each ref, it first checks if >> the ref exists locally, and if it does, passes it with a "^" prefix to >> pack-objects. However, in a partial clone, the check may trigger a lazy >> fetch. >> >> The additional commit ancestry information obtained during such fetches >> may show that certain objects that would have been sent are already >> known to the server, resulting in a smaller pack being sent. But this is >> at the cost of fetching from many possibly unrelated refs, and the lazy >> fetches do not help at all in the typical case where the client is >> up-to-date with the upstream of the branch being pushed. >> >> Ensure that these lazy fetches do not occur. > > That makes sense. For similar reasons, should we be using > OBJECT_INFO_QUICK here? If the other side has a bunch of ref tips that > we don't have, we'll end up re-scanning the pack directory over and over > (which is _usually_ pretty quick, but can be slow if you have a lot of > packs locally). And it's OK if we racily miss out on an exclusion due to > somebody else repacking simultaneously. That's a good idea. We can hint to the object store that we don't expect misses to be due to a concurrent repack, so we don't want to reprepare pack-files. -Stolee
next prev parent reply other threads:[~2019-10-11 12:31 UTC|newest] Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-10-07 21:38 [PATCH] " Jonathan Tan 2019-10-08 4:10 ` Junio C Hamano 2019-10-08 18:37 ` [PATCH v2] " Jonathan Tan 2019-10-11 6:12 ` Jeff King 2019-10-11 12:31 ` Derrick Stolee [this message] 2019-10-11 16:15 ` Jeff King 2019-10-11 22:08 ` Jonathan Tan 2019-10-17 6:10 ` Jeff King 2019-10-12 0:47 ` Junio C Hamano
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: http://vger.kernel.org/majordomo-info.html * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --subject='Re: [PATCH v2] send-pack: never fetch when checking exclusions' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Code repositories for project(s) associated with this inbox: https://80x24.org/mirrors/git.git 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 read-only IMAP folder(s) and NNTP newsgroup(s).