mirror of
https://github.com/git-for-windows/git.git
synced 2026-03-28 15:45:21 -05:00
update-index: use the bulk-checkin infrastructure
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 pack functionality and the new bulk-fsync functionality. There is some risk with this change, since under batch fsync, the object files will not be available until the update-index is entirely 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@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Victoria Dye
parent
490ddd7bf0
commit
9fdc3db416
@@ -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"
|
||||
@@ -1088,6 +1089,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();
|
||||
|
||||
/*
|
||||
* Custom copy of parse_options() because we want to handle
|
||||
* filename arguments as they come.
|
||||
@@ -1168,6 +1172,8 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
|
||||
strbuf_release(&buf);
|
||||
}
|
||||
|
||||
/* by now we must have added all of the new objects */
|
||||
unplug_bulk_checkin();
|
||||
if (split_index > 0) {
|
||||
if (git_config_get_split_index() == 0)
|
||||
warning(_("core.splitIndex is set to false; "
|
||||
|
||||
Reference in New Issue
Block a user