Re: [PATCH v3 08/21] Documentation/git-update-index: talk about core.splitIndex config var
From: Christian Couder <hidden>
Date: 2017-01-23 15:55:45
On Mon, Jan 9, 2017 at 12:18 PM, Duy Nguyen [off-list ref] wrote:
On Sun, Jan 8, 2017 at 4:38 AM, Junio C Hamano [off-list ref] wrote:quoted
Christian Couder [off-list ref] writes:quoted
It feels strange that when I do things one way, you suggest another way, and the next time in a similar situation when I do things the way you suggested previously, then you suggest the way I did it initially the first time...Perhaps because neither is quite satisfactory and I am being forced to choose between the two unsatifactory designs? In any case, I mostly am and was pointing out the issues and not saying the other one is the most preferred solution in these threads. I think there should just be one authoritative source of the truth,Either that, or we make sure all sources of truth are consistent. In this case, 'update --split-index' could update core.splitIndex if it finds that the config tells a different story. As a plumbing though, I rather leave update-index do simple things, even if it means the user has to clean up after it (or before it) with "git config -unset core.splitIndex". Another option is refuse to execute --split-index in the presence of (conflicting) core.splitIndex. We kind of force the user to keep all sources of truth consistent this way while leaving a back door ("git -c core.splitIndex= update-index") for those who need tools to recover from a bad case.quoted
and I have always thought it should be the bit set in the index file when the command line option is used, because that was the way the feature was introduced first and I am superstitious about end-user inertia. And from that point of view, no matter how you make this new "config" thing interact with it, it would always give a strange and unsatifactory end-user experience, at least to me. Perhaps we should declare that config will be the one and only way in the future and start deprecating the command line option way. That will remove the need for two to interact with each other.
That would be my preferred solution as I think it is the simplest in the end for users. Also, as Duy wrote above, one can always use something like "git -c core.splitIndex= ...", which by the way can work for any command, not just "update-index". Anyway we would have to introduce core.splitIndex first, and it wouldn't make sense to have a different behavior between --[no-]split-index and --[no-]untracked-cache in the meantime before they are deprecated and eventually removed. So let's just go with the implementation in this series, which is similar to --[no-]untracked-cache, and let's plan to deprecate --[no-]split-index and --[no-]untracked-cache in a later patch series.