Re: [PATCH 09/17] odb: get rid of `the_repository` in `for_each()` functions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 5/9/2025 7:25 AM, Patrick Steinhardt wrote:
> On Tue, May 06, 2025 at 09:21:15PM -0400, Derrick Stolee wrote:
>> On 5/6/25 7:09 AM, Patrick Steinhardt wrote:
>>> There are a couple of iterator-style functions that execute a callback
>>> for each instance of a given set, all of which currently depend on
>>> `the_repository`. Refactor them to instead take an object database as
>>> parameter so that we can get rid of this dependency.
>> ...
>>> +/*
>>> + * Iterate through all backends of the database and execute the provided
>>> + * callback function for each of them. Stop iterating once the callback
>>> + * function returns a non-zero value, in which case the value is bubbled up
>>> + * from the callback.
>>> + */
>>> +typedef int odb_for_each_backend_fn(struct odb_backend *, void *);
>>> +int odb_for_each_backend(struct object_database *odb,
>>> +			 odb_for_each_backend_fn cb, void *payload);
>>> +
>>> +/*
>>> + * Iterate through all alternative object backends of the database and yield
>>> + * their respective references.
>>> + */
>>> +typedef void odb_for_each_alternate_ref_fn(const struct object_id *oid, void *);
>>> +void odb_for_each_alternate_ref(struct object_database *odb,
>>> +				odb_for_each_alternate_ref_fn cb, void *payload);
>>> +
>>
>> Here's another occasion where we should be careful about how we rename
>> an "alternate odb". What is an "alternate ref" if we have different 'odb
>> backend's (or slices/shards/odbs etc.). Should we be updating the term
>> "alternate ref" here?
>>
>> Changing 'alternate ref' would be quite difficult seeing how it is based
>> on the 'core.alternateRefsCommand' and 'core.alternateRefsPrefix' config
>> keys.
>>
>> Perhaps this is motivation to keep the word 'alternate' but as a way to
>> differentiate the repo's odb from ones it is borrowing.
> 
> Yeah, the next iteration will call things `odb_alternate` instead of
> `odb_backend`, which I think makes a lot of the terminology fall out
> naturally. The only thing that may be confusing at first is that we also
> have a "primary alternate" now, but I think that's bearable.

I like odb_alternate over odb_backend. Thanks.

-Stolee




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux