]> git.ipfire.org Git - thirdparty/git.git/commit
odb: transparently handle common transaction behavior
authorJustin Tobler <jltobler@gmail.com>
Tue, 3 Feb 2026 00:10:02 +0000 (18:10 -0600)
committerJunio C Hamano <gitster@pobox.com>
Tue, 3 Feb 2026 01:14:03 +0000 (17:14 -0800)
commit3f67e3d0211dd06d27ee3ee5b23e5f328ff2db12
tree4f16e9ce1f6f06069a1679da78292c3ee77ed39a
parentfa7d067923a342c298b7723935c60217a5244e4e
odb: transparently handle common transaction behavior

A new ODB transaction is created and returned via
`odb_transaction_begin()` and stored in the ODB. Only a single
transaction may be pending at a time. If the ODB already has a
transaction, the function is expected to return NULL. Similarly, when
committing a transaction via `odb_transaction_commit()` the transaction
being committed must match the pending transaction and upon commit reset
the ODB transaction to NULL.

These behaviors apply regardless of the ODB transaction implementation.
Move the corresponding logic into `odb_transaction_{begin,commit}()`
accordingly.

Signed-off-by: Justin Tobler <jltobler@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
object-file.c
odb.c