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
@@ -474,6 +474,7 @@ static int update_one(struct cache_tree *it,
|
||||
|
||||
int cache_tree_update(struct index_state *istate, int flags)
|
||||
{
|
||||
struct odb_transaction *transaction;
|
||||
int skip, i;
|
||||
|
||||
i = verify_cache(istate, flags);
|
||||
@@ -489,10 +490,10 @@ int cache_tree_update(struct index_state *istate, int flags)
|
||||
|
||||
trace_performance_enter();
|
||||
trace2_region_enter("cache_tree", "update", the_repository);
|
||||
begin_odb_transaction();
|
||||
transaction = begin_odb_transaction(the_repository->objects);
|
||||
i = update_one(istate->cache_tree, istate->cache, istate->cache_nr,
|
||||
"", 0, &skip, flags);
|
||||
end_odb_transaction();
|
||||
end_odb_transaction(transaction);
|
||||
trace2_region_leave("cache_tree", "update", the_repository);
|
||||
trace_performance_leave("cache_tree_update");
|
||||
if (i < 0)
|
||||
|
||||
Reference in New Issue
Block a user