Re: [PATCH 9/9] cache.h: allow sha1_object_info to handle arbitrary repositories
- From
- Jonathan Tan <jonathantanmy@google.com>
- Date
- Apr 24, 2018, 18:23 UTC
- 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 <sbeller@google.com> 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).