Show 46 quoted lines
> 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. This mode
> is enabled when passing paths to update-index via the --stdin flag,
> as is done by 'git stash'.
>
> 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 snoop the output of --verbose to
> find out when update-index has actually processed a given path.
> Additionally the index is locked for the duration of the update.
>
> Signed-off-by: Neeraj Singh <neerajsi@microsoft.com>
> ---
> builtin/update-index.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/builtin/update-index.c b/builtin/update-index.c
> index 187203e8bb5..b0689f2cdf6 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"
> @@ -1150,6 +1151,7 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
> struct strbuf unquoted = STRBUF_INIT;
>
> setup_work_tree();
> + plug_bulk_checkin();
> while (getline_fn(&buf, stdin) != EOF) {
> char *p;
> if (!nul_term_line && buf.buf[0] == '"') {
> @@ -1164,6 +1166,7 @@ int cmd_update_index(int argc, const char **argv, const char *prefix)
> chmod_path(set_executable_bit, p);
> free(p);
> }
> + unplug_bulk_checkin(&lock_file);
> strbuf_release(&unquoted);
> strbuf_release(&buf);
> }