Re: [RFC PATCH 00/12] Sparse checkout
From: Jan Hudec <hidden>
Date: 2016-06-15 22:45:06
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:quoted
On 7/23/08, Johannes Schindelin [off-list ref] wrote:quoted
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. By the way, why is it *prefix*? Wouldn't a *path limit* be better? -- Jan 'Bulb' Hudec [off-list ref]