Hi again, Ben Peart wrote: > On 11/13/2018 1:18 PM, Jonathan Nieder wrote: >> Ben Peart wrote: >>> Why introduce a new setting to disable writing the IEOT extension instead of >>> just using the existing index.threads setting? If index.threads=1 then the >>> IEOT extension isn't written which (I believe) will accomplish the same >>> goal. >> >> Do you mean defaulting to index.threads=1? I don't think that would >> be a good default, but if you have a different change in mind then I'd >> be happy to hear it. >> >> Or do you mean that if the user has explicitly specified index.threads=true, >> then that should imply index.recordOffsetTable=true so users only have >> to set one setting to turn it on? I can imagine that working well. > > Reading the index with multiple threads requires the EOIE and IEOT > extensions to exist in the index. If either extension doesn't exist, then > the code falls back to the single threaded path. That means you can't have > both 1) no warning for old versions of git and 2) multi-threaded reading for > new versions of git. > > If you set index.threads=1, that will prevent the IEOT extension from being > written and there will be no "ignoring IEOT extension" warning in older > versions of git. > > With this patch 'as is' you would have to set both index.threads=true and > index.recordOffsetTable=true to get multi-threaded index reads. If either > is set to false, it will silently drop back to single threaded reads. Sorry, I'm still not understanding what you're proposing. What would be - the default behavior - the mechanism for changing that behavior under your proposal? I consider index.threads=1 to be a bad default. I would understand if you are saying that that should be the default, and I tried to propose a different way to achieve what you're looking for in the quoted reply above (but I'm not understanding whether you like that proposal or not). Jonathan