Re: [RFC PATCH 00/12] Sparse checkout
From: Nguyen Thai Ngoc Duy <hidden>
Date: 2016-06-15 22:45:06
On 8/4/08, Jan Hudec [off-list ref] wrote:
Hello, sorry for replying to an old thread, but I am a bit puzzled here, On Wed, Jul 23, 2008 at 17:55:14 +0100, Johannes Schindelin wrote: > On Wed, 23 Jul 2008, Nguyen Thai Ngoc Duy wrote: > > On 7/23/08, Johannes Schindelin [off-list ref] wrote: > > > On Wed, 23 Jul 2008, Nguyễn Thái Ngọc Duy wrote: > > > > > > > So in short, sparse prefix will be stored in config, > > > > core.sparsecheckout. > > > > > > Do you really think the prefix should be stored anywhere else than the > > > index? > > > > > > With core.sparseCheckout you have to introduce a _sh*tload_ of config > > > loaders. > > > > > > And with core.sparseCheckout you are at the whim of the user, since > > > .git/config is _supposed_ to be user-editable. > > > > > > From a logical point of view, I'd say that the sparse prefix has > > > nothing to do with the "configuration" of the local repository. > > > > Well, whatever place. I chose .git/config because I did not want to > > introduce a new config place. But then how about .git/sparsecheckout? > > No, I did mean the index. This is an attribute of the index: either it is > sparsely checked out or not. You can even have multiple indices > (switching between them by setting GIT_INDEX_FILE) which have different > prefixes. Um, but does the prefix we want to use depend on what files are physically present in the tree? That would however imply that it's /not/ an attribute of the index, but the tree and therefore should be stored in a separate object. The question whether it goes in the .git/config or .git/sparsecheckout is than that of semantics -- if it's in .git/config, than user changes that by editing the file or git config and no other way, while if it's in .git/sparsecheckout, user changes it by running checkout with appropriate arguments.
Please see the post Junio talked about narrow/sparse checkout [1]. With that approach (that is finer grain checkout than my approach), it becomes clear that "prefix" is an attribute of index. [1] http://article.gmane.org/gmane.comp.version-control.git/90016/match=narrow+checkout
By the way, why is it *prefix*? Wouldn't a *path limit* be better?
Well, yes "path limiter" seems a better term. But it's irrelevant now because this approach won't fly. I'm going to wait to see if anyone takes the task as part of hackontest. Otherwise I will redo my series, using assume unchanged bit.
--
Jan 'Bulb' Hudec [off-list ref]-- Duy