From: Ben Peart Date: Tue, 20 Nov 2018 13:24:35 GMT Subject: Re: [PATCH 4/5] index: make index.threads=true enable ieot and eoie Message-ID: In-Reply-To: <20181120061426.GE144753@google.com> On 11/20/2018 1:14 AM, Jonathan Nieder wrote: > If a user explicitly sets > > [index] > threads = true > > to read the index using multiple threads, ensure that index writes > include the offset table by default to make that possible. This > ensures that the user's intent of turning on threading is respected. > > In other words, permit the following configurations: > > - index.threads and index.recordOffsetTable unspecified: do not write > the offset table yet (to avoid alarming the user with "ignoring IEOT > extension" messages when an older version of Git accesses the > repository) but do make use of multiple threads to read the index if > the supporting offset table is present. > > This can also be requested explicitly by setting index.threads=true, > 0, or >1 and index.recordOffsetTable=false. > > - index.threads=false or 1: do not write the offset table, and do not > make use of the offset table. > > One can set index.recordOffsetTable=false as well, to be more > explicit. > > - index.threads=true, 0, or >1 and index.recordOffsetTable unspecified: > write the offset table and make use of threads at read time. > > This can also be requested by setting index.threads=true, 0, >1, or > unspecified and index.recordOffsetTable=true. > > Fortunately the complication is temporary: once most Git installations > have upgraded to a version with support for the IEOT and EOIE > extensions, we can flip the defaults for index.recordEndOfIndexEntries > and index.recordOffsetTable to true and eliminate the settings. > This looks good. I think this provides good default behavior while enabling fine grained control to those who want/need it. I'm looking forward to the day when we can turn it back on by default so that people can take advantage of the speed improvements.