summaryrefslogtreecommitdiff
path: root/object-file.h
diff options
context:
space:
mode:
authorJustin Tobler <jltobler@gmail.com>2025-09-16 13:29:36 -0500
committerJunio C Hamano <gitster@pobox.com>2025-09-16 11:37:05 -0700
commit78839e9cdead363d10190a009783c2d18149cc54 (patch)
tree1cabeaaf5f44c33c84887b2a7eea877f7bee954f /object-file.h
parentca7d93453b6c309aa1fca411e1bdaa9ca4c82199 (diff)
object-file: relocate ODB transaction code
The bulk-checkin subsystem provides various functions to manage ODB transactions. Apart from {begin,end}_odb_transaction(), these functions are only used by the object-file subsystem to manage aspects of a transaction implementation specific to the files object source. Relocate all the transaction code in bulk-checkin to object-file. This simplifies the exposed transaction interface by reducing it to only {begin,end}_odb_transaction(). Function and type names are adjusted in the subsequent commit to better fit the new location. Signed-off-by: Justin Tobler <jltobler@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'object-file.h')
-rw-r--r--object-file.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/object-file.h b/object-file.h
index 15d97630d3..6323d2e63c 100644
--- a/object-file.h
+++ b/object-file.h
@@ -218,4 +218,20 @@ int read_loose_object(struct repository *repo,
void **contents,
struct object_info *oi);
+struct odb_transaction;
+
+/*
+ * Tell the object database to optimize for adding
+ * multiple objects. end_odb_transaction must be called
+ * to make new objects visible. If a transaction is already
+ * pending, NULL is returned.
+ */
+struct odb_transaction *begin_odb_transaction(struct object_database *odb);
+
+/*
+ * Tell the object database to make any objects from the
+ * current transaction visible.
+ */
+void end_odb_transaction(struct odb_transaction *transaction);
+
#endif /* OBJECT_FILE_H */