bulk-checkin: remove global transaction state
Object database transactions in the bulk-checkin subsystem rely on global state to track transaction status. Stop relying on global state and instead store the transaction in the `struct object_database`. Functions that operate on transactions are updated to now wire transaction state. Signed-off-by: Justin Tobler <jltobler@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
98518304c5
commit
b336144725
@@ -389,6 +389,7 @@ int cmd_add(int argc,
|
||||
char *seen = NULL;
|
||||
char *ps_matched = NULL;
|
||||
struct lock_file lock_file = LOCK_INIT;
|
||||
struct odb_transaction *transaction;
|
||||
|
||||
repo_config(repo, add_config, NULL);
|
||||
|
||||
@@ -574,7 +575,7 @@ int cmd_add(int argc,
|
||||
string_list_clear(&only_match_skip_worktree, 0);
|
||||
}
|
||||
|
||||
begin_odb_transaction();
|
||||
transaction = begin_odb_transaction(repo->objects);
|
||||
|
||||
ps_matched = xcalloc(pathspec.nr, 1);
|
||||
if (add_renormalize)
|
||||
@@ -593,7 +594,7 @@ int cmd_add(int argc,
|
||||
|
||||
if (chmod_arg && pathspec.nr)
|
||||
exit_status |= chmod_pathspec(repo, &pathspec, chmod_arg[0], show_only);
|
||||
end_odb_transaction();
|
||||
end_odb_transaction(transaction);
|
||||
|
||||
finish:
|
||||
if (write_locked_index(repo->index, &lock_file,
|
||||
|
||||
Reference in New Issue
Block a user