Show 34 quoted lines
> On 06/01/2016 09:39 PM, Junio C Hamano wrote:
>> ...
> I think I would represent the logical store of a worktree repo as
> follows. First, ...
> ...
>> Up to this point, I am all for your "separate physical stores are
>> composited to give a logical view". I can see how multi-worktree
>> world view fits within that framework.
>>
>> * With pluggable ref backend, we may gain yet another "physical
>> reference store" possibility, e.g. one backed by lmdb. If it
>> supports symrefs, a repoitory may use lmdb backed reference store
>> without the traditional two.
>>
>> But it is unclear how it would interact with the multi-worktree
>> world order.
>
> Since you could plug-and-play different ref_stores in the above scheme,
> I don't see any problem here.
>
> def get_logical_ref_store() {
> local_ref_store = get_local_ref_store(git_dir)
> if (is_linked_repo) {
> common_ref_store = get_ref_store(common_dir)
> return worktree_ref_store(local_ref_store,
> common_ref_store)
> } else {
> return local_ref_store;
> }
> }
>
> get_ref_store() would read the git config to decide what the ref store
> to use for the specified repository, which itself might be an
> lmdb_ref_store or an overlay_ref_store(loose_ref_store, packed_ref_store).