@@ -105,6 +105,15 @@ def mwindow_mapped_limit(self) -> int:
105
105
def mwindow_mapped_limit (self , value : int ) -> None :
106
106
option (Option .SET_MWINDOW_MAPPED_LIMIT , value )
107
107
108
+ @property
109
+ def mwindow_file_limit (self ) -> int :
110
+ """Get or set the maximum number of files to be mapped at any time"""
111
+ return option (Option .GET_MWINDOW_FILE_LIMIT )
112
+
113
+ @mwindow_file_limit .setter
114
+ def mwindow_file_limit (self , value : int ) -> None :
115
+ option (Option .SET_MWINDOW_FILE_LIMIT , value )
116
+
108
117
@property
109
118
def cached_memory (self ) -> tuple [int , int ]:
110
119
"""
@@ -207,3 +216,137 @@ def set_ssl_cert_locations(
207
216
option (Option .SET_SSL_CERT_LOCATIONS , cert_file , cert_dir )
208
217
self ._ssl_cert_file = cert_file
209
218
self ._ssl_cert_dir = cert_dir
219
+
220
+ @property
221
+ def template_path (self ) -> str | None :
222
+ """Get or set the default template path for new repositories"""
223
+ return option (Option .GET_TEMPLATE_PATH )
224
+
225
+ @template_path .setter
226
+ def template_path (self , value : str | bytes ) -> None :
227
+ option (Option .SET_TEMPLATE_PATH , value )
228
+
229
+ @property
230
+ def user_agent (self ) -> str | None :
231
+ """Get or set the user agent string for network operations"""
232
+ return option (Option .GET_USER_AGENT )
233
+
234
+ @user_agent .setter
235
+ def user_agent (self , value : str | bytes ) -> None :
236
+ option (Option .SET_USER_AGENT , value )
237
+
238
+ @property
239
+ def user_agent_product (self ) -> str | None :
240
+ """Get or set the user agent product name"""
241
+ return option (Option .GET_USER_AGENT_PRODUCT )
242
+
243
+ @user_agent_product .setter
244
+ def user_agent_product (self , value : str | bytes ) -> None :
245
+ option (Option .SET_USER_AGENT_PRODUCT , value )
246
+
247
+ def set_ssl_ciphers (self , ciphers : str | bytes ) -> None :
248
+ """Set the SSL ciphers to use for HTTPS connections"""
249
+ option (Option .SET_SSL_CIPHERS , ciphers )
250
+
251
+ def add_ssl_x509_cert (self , certificate : str | bytes ) -> None :
252
+ """Add a trusted X.509 certificate for SSL/TLS connections"""
253
+ option (Option .ADD_SSL_X509_CERT , certificate )
254
+
255
+ def enable_strict_object_creation (self , value : bool = True ) -> None :
256
+ """Enable or disable strict object creation validation"""
257
+ option (Option .ENABLE_STRICT_OBJECT_CREATION , value )
258
+
259
+ def enable_strict_symbolic_ref_creation (self , value : bool = True ) -> None :
260
+ """Enable or disable strict symbolic reference creation validation"""
261
+ option (Option .ENABLE_STRICT_SYMBOLIC_REF_CREATION , value )
262
+
263
+ def enable_ofs_delta (self , value : bool = True ) -> None :
264
+ """Enable or disable offset delta encoding"""
265
+ option (Option .ENABLE_OFS_DELTA , value )
266
+
267
+ def enable_fsync_gitdir (self , value : bool = True ) -> None :
268
+ """Enable or disable fsync for git directory operations"""
269
+ option (Option .ENABLE_FSYNC_GITDIR , value )
270
+
271
+ def enable_strict_hash_verification (self , value : bool = True ) -> None :
272
+ """Enable or disable strict hash verification"""
273
+ option (Option .ENABLE_STRICT_HASH_VERIFICATION , value )
274
+
275
+ def enable_unsaved_index_safety (self , value : bool = True ) -> None :
276
+ """Enable or disable unsaved index safety checks"""
277
+ option (Option .ENABLE_UNSAVED_INDEX_SAFETY , value )
278
+
279
+ def enable_http_expect_continue (self , value : bool = True ) -> None :
280
+ """Enable or disable HTTP Expect/Continue for large pushes"""
281
+ option (Option .ENABLE_HTTP_EXPECT_CONTINUE , value )
282
+
283
+ @property
284
+ def windows_sharemode (self ) -> int :
285
+ """Get or set the Windows share mode for opening files"""
286
+ return option (Option .GET_WINDOWS_SHAREMODE )
287
+
288
+ @windows_sharemode .setter
289
+ def windows_sharemode (self , value : int ) -> None :
290
+ option (Option .SET_WINDOWS_SHAREMODE , value )
291
+
292
+ @property
293
+ def pack_max_objects (self ) -> int :
294
+ """Get or set the maximum number of objects in a pack"""
295
+ return option (Option .GET_PACK_MAX_OBJECTS )
296
+
297
+ @pack_max_objects .setter
298
+ def pack_max_objects (self , value : int ) -> None :
299
+ option (Option .SET_PACK_MAX_OBJECTS , value )
300
+
301
+ @property
302
+ def owner_validation (self ) -> bool :
303
+ """Get or set repository directory ownership validation"""
304
+ return option (Option .GET_OWNER_VALIDATION )
305
+
306
+ @owner_validation .setter
307
+ def owner_validation (self , value : bool ) -> None :
308
+ option (Option .SET_OWNER_VALIDATION , value )
309
+
310
+ def set_odb_packed_priority (self , priority : int ) -> None :
311
+ """Set the priority for packed ODB backend (default 1)"""
312
+ option (Option .SET_ODB_PACKED_PRIORITY , priority )
313
+
314
+ def set_odb_loose_priority (self , priority : int ) -> None :
315
+ """Set the priority for loose ODB backend (default 2)"""
316
+ option (Option .SET_ODB_LOOSE_PRIORITY , priority )
317
+
318
+ @property
319
+ def extensions (self ) -> list [str ]:
320
+ """Get the list of enabled extensions"""
321
+ return option (Option .GET_EXTENSIONS )
322
+
323
+ def set_extensions (self , extensions : list [str ]) -> None :
324
+ """Set the list of enabled extensions"""
325
+ option (Option .SET_EXTENSIONS , extensions , len (extensions ))
326
+
327
+ @property
328
+ def homedir (self ) -> str | None :
329
+ """Get or set the home directory"""
330
+ return option (Option .GET_HOMEDIR )
331
+
332
+ @homedir .setter
333
+ def homedir (self , value : str | bytes ) -> None :
334
+ option (Option .SET_HOMEDIR , value )
335
+
336
+ @property
337
+ def server_connect_timeout (self ) -> int :
338
+ """Get or set the server connection timeout in milliseconds"""
339
+ return option (Option .GET_SERVER_CONNECT_TIMEOUT )
340
+
341
+ @server_connect_timeout .setter
342
+ def server_connect_timeout (self , value : int ) -> None :
343
+ option (Option .SET_SERVER_CONNECT_TIMEOUT , value )
344
+
345
+ @property
346
+ def server_timeout (self ) -> int :
347
+ """Get or set the server timeout in milliseconds"""
348
+ return option (Option .GET_SERVER_TIMEOUT )
349
+
350
+ @server_timeout .setter
351
+ def server_timeout (self , value : int ) -> None :
352
+ option (Option .SET_SERVER_TIMEOUT , value )
0 commit comments