On Mon, Mar 21, 2022 at 8:04 AM Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> wrote: > > > On Sun, Mar 20 2022, Neeraj Singh via GitGitGadget wrote: > > > From: Neeraj Singh <neerajsi@xxxxxxxxxxxxx> > > > > The update-index functionality is used internally by 'git stash push' to > > setup the internal stashed commit. > > > > This change enables bulk-checkin for update-index infrastructure to > > speed up adding new objects to the object database by leveraging the > > batch fsync functionality. > > > > There is some risk with this change, since under batch fsync, the object > > files will be in a tmp-objdir until update-index is complete. This > > usage is unlikely, since any tool invoking update-index and expecting to > > see objects would have to synchronize with the update-index process > > after passing it a file path. > > > > Signed-off-by: Neeraj Singh <neerajsi@xxxxxxxxxxxxx> > > --- > > builtin/update-index.c | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/builtin/update-index.c b/builtin/update-index.c > > index 75d646377cc..38e9d7e88cb 100644 > > --- a/builtin/update-index.c > > +++ b/builtin/update-index.c > > @@ -5,6 +5,7 @@ > > */ > > #define USE_THE_INDEX_COMPATIBILITY_MACROS > > #include "cache.h" > > +#include "bulk-checkin.h" > > #include "config.h" > > #include "lockfile.h" > > #include "quote.h" > > @@ -1110,6 +1111,9 @@ int cmd_update_index(int argc, const char **argv, const char *prefix) > > > > the_index.updated_skipworktree = 1; > > > > + /* we might be adding many objects to the object database */ > > + plug_bulk_checkin(); > > + > > Shouldn't this be after parse_options_start()? Does it make a difference? Especially if we do the object dir creation lazily?