From: Jonathan Tan Date: Tue, 24 Apr 2018 18:23:32 GMT Subject: Re: [PATCH 9/9] cache.h: allow sha1_object_info to handle arbitrary repositories Message-ID: <20180424112332.38c0d04d96689f030e96825a@google.com> In-Reply-To: <20180423234327.250484-10-sbeller@google.com> On Mon, 23 Apr 2018 16:43:27 -0700 Stefan Beller wrote: > This involves also adapting sha1_object_info_extended and a some > internal functions that are used to implement these. It all has to > happen in one patch, because of a single recursive chain of calls visits > all these functions. In packfile.c, unpack_entry() invokes get_delta_base_cache_entry(), which references a global (delta_base_cache). Does delta_base_cache need to be moved to the repo object (or object store object) first, or is this safe? Also, in sha1_file.c, oid_object_info_extended() invokes fetch_object(), which attempts to fetch a missing object. For this, I think that it's best to guard with a "r == the_repository" check, or if there's a better way to distinguish between the "default" repository and any repository that we newly create (I vaguely remember some distinction when parsing environment variables when determining repo paths - the envvars were only used for the "default" repository, but not for the others).