> Get the maximum memory that will be mapped in total by the library
* opts(GIT_OPT_SET_MWINDOW_MAPPED_LIMIT, size_t):
> Set the maximum amount of memory that can be mapped at any time
> by the library
* opts(GIT_OPT_GET_MWINDOW_FILE_LIMIT, size_t *):
> Get the maximum number of files that will be mapped at any time by the
> library
* opts(GIT_OPT_SET_MWINDOW_FILE_LIMIT, size_t):
> Set the maximum number of files that can be mapped at any time
> by the library. The default (0) is unlimited.
* opts(GIT_OPT_GET_SEARCH_PATH, int level, git_buf *buf)
> Get the search path for a given level of config data. "level" must
> be one of GIT_CONFIG_LEVEL_SYSTEM, GIT_CONFIG_LEVEL_GLOBAL,
> GIT_CONFIG_LEVEL_XDG, or GIT_CONFIG_LEVEL_PROGRAMDATA.
> The search path is written to the out buffer.
* opts(GIT_OPT_SET_SEARCH_PATH, int level, const char *path)
> Set the search path for a level of config data. The search path
> applied to shared attributes and ignore files, too.
>
> - path lists directories delimited by GIT_PATH_LIST_SEPARATOR.
> Pass NULL to reset to the default (generally based on environment
> variables). Use magic path $PATH to include the old value
> of the path (if you want to prepend or append, for instance).
>
> - level must be GIT_CONFIG_LEVEL_SYSTEM,
> GIT_CONFIG_LEVEL_GLOBAL, GIT_CONFIG_LEVEL_XDG, or
> GIT_CONFIG_LEVEL_PROGRAMDATA.
> Set the maximum data size for the given type of object to be
> considered eligible for caching in memory. Setting to value to
> zero means that that type of object will not be cached.
> Defaults to 0 for GIT_OBJECT_BLOB (i.e. won't cache blobs) and 4k
> for GIT_OBJECT_COMMIT, GIT_OBJECT_TREE, and GIT_OBJECT_TAG.
> Set the maximum total data size that will be cached in memory
> across all repositories before libgit2 starts evicting objects
> from the cache. This is a soft limit, in that the library might
> briefly exceed it, but will start aggressively evicting objects
> from cache when that happens. The default cache size is 256MB.
* opts(GIT_OPT_ENABLE_CACHING, int enabled)
> Enable or disable caching completely.
>
> Because caches are repository-specific, disabling the cache
> cannot immediately clear all cached objects, but each cache will
> be cleared on the next attempt to update anything in it.
> Set the SSL certificate-authority locations.
>
> - file is the location of a file containing several
> certificates concatenated together.
> - path is the location of a directory holding several
> certificates, one per file.
>
> Either parameter may be NULL, but not both.
> Set the value of the User-Agent header. This value will be
> appended to "git/1.0", for compatibility with other git clients.
>
> - user_agent is the value that will be delivered as the
> User-Agent header on HTTP requests.
> Set the share mode used when opening files on Windows.
> For more information, see the documentation for CreateFile.
> The default is: FILE_SHARE_READ | FILE_SHARE_WRITE. This is
> ignored and unused on non-Windows platforms.
> Get the share mode used when opening files on Windows.
* opts(GIT_OPT_ENABLE_STRICT_OBJECT_CREATION, int enabled)
> Enable strict input validation when creating new objects
> to ensure that all inputs to the new objects are valid. For
> example, when this is enabled, the parent(s) and tree inputs
> will be validated when creating a new commit. This defaults
> to enabled.
* opts(GIT_OPT_ENABLE_STRICT_SYMBOLIC_REF_CREATION, int enabled)
> Validate the target of a symbolic ref when creating it. For
> example, foobar is not a valid ref, therefore foobar is
> not a valid target for a symbolic ref by default, whereas
> refs/heads/foobar is. Disabling this bypasses validation
> so that an arbitrary strings such as foobar can be used
> for a symbolic ref target. This defaults to enabled.
> Set the SSL ciphers use for HTTPS connections.
>
> - ciphers is the list of ciphers that are eanbled.
* opts(GIT_OPT_ENABLE_OFS_DELTA, int enabled)
> Enable or disable the use of "offset deltas" when creating packfiles,
> and the negotiation of them when talking to a remote server.
> Offset deltas store a delta base location as an offset into the
> packfile from the current location, which provides a shorter encoding
> and thus smaller resultant packfiles.
> Packfiles containing offset deltas can still be read.
> This defaults to enabled.
* opts(GIT_OPT_ENABLE_FSYNC_GITDIR, int enabled)
> Enable synchronized writes of files in the gitdir using fsync
> (or the platform equivalent) to ensure that new object data
> is written to permanent storage, not simply cached. This
> defaults to disabled.
opts(GIT_OPT_ENABLE_STRICT_HASH_VERIFICATION, int enabled)
> Enable strict verification of object hashsums when reading
> objects from disk. This may impact performance due to an
> additional checksum calculation on each object. This defaults
> to enabled.
> Set the memory allocator to a different memory allocator. This
> allocator will then be used to make all memory allocations for
> libgit2 operations. If the given allocator is NULL, then the
> system default will be restored.
opts(GIT_OPT_ENABLE_UNSAVED_INDEX_SAFETY, int enabled)
> Ensure that there are no unsaved changes in the index before
> beginning any operation that reloads the index from disk (eg,
> checkout). If there are unsaved changes, the instruction will
> fail. (Using the FORCE flag to checkout will still overwrite
> these changes.)
opts(GIT_OPT_GET_PACK_MAX_OBJECTS, size_t *out)
> Get the maximum number of objects libgit2 will allow in a pack
> file when downloading a pack file from a remote. This can be
> used to limit maximum memory usage when fetching from an untrusted
> remote.
> Set the maximum number of objects libgit2 will allow in a pack
> file when downloading a pack file from a remote.
opts(GIT_OPT_DISABLE_PACK_KEEP_FILE_CHECKS, int enabled)
> This will cause .keep file existence checks to be skipped when
> accessing packfiles, which can help performance with remote filesystems.
opts(GIT_OPT_ENABLE_HTTP_EXPECT_CONTINUE, int enabled)
> When connecting to a server using NTLM or Negotiate
> authentication, use expect/continue when POSTing data.
> This option is not available on Windows.
Set or query a library global option
Available options:
* opts(GIT_OPT_GET_MWINDOW_SIZE, size_t *):
> Get the maximum mmap window size
* opts(GIT_OPT_SET_MWINDOW_SIZE, size_t):
> Set the maximum mmap window size
* opts(GIT_OPT_GET_MWINDOW_MAPPED_LIMIT, size_t *):
> Get the maximum memory that will be mapped in total by the library
* opts(GIT_OPT_SET_MWINDOW_MAPPED_LIMIT, size_t):
> Set the maximum amount of memory that can be mapped at any time > by the library
* opts(GIT_OPT_GET_MWINDOW_FILE_LIMIT, size_t *):
> Get the maximum number of files that will be mapped at any time by the > library
* opts(GIT_OPT_SET_MWINDOW_FILE_LIMIT, size_t):
> Set the maximum number of files that can be mapped at any time > by the library. The default (0) is unlimited.
* opts(GIT_OPT_GET_SEARCH_PATH, int level, git_buf *buf)
> Get the search path for a given level of config data. "level" must > be one of GIT_CONFIG_LEVEL_SYSTEM, GIT_CONFIG_LEVEL_GLOBAL, > GIT_CONFIG_LEVEL_XDG, or GIT_CONFIG_LEVEL_PROGRAMDATA. > The search path is written to the out buffer.
* opts(GIT_OPT_SET_SEARCH_PATH, int level, const char *path)
> Set the search path for a level of config data. The search path > applied to shared attributes and ignore files, too. > > - path lists directories delimited by GIT_PATH_LIST_SEPARATOR. > Pass NULL to reset to the default (generally based on environment > variables). Use magic path $PATH to include the old value > of the path (if you want to prepend or append, for instance). > > - level must be GIT_CONFIG_LEVEL_SYSTEM, > GIT_CONFIG_LEVEL_GLOBAL, GIT_CONFIG_LEVEL_XDG, or > GIT_CONFIG_LEVEL_PROGRAMDATA.
* opts(GIT_OPT_SET_CACHE_OBJECT_LIMIT, git_object_t type, size_t size)
> Set the maximum data size for the given type of object to be > considered eligible for caching in memory. Setting to value to > zero means that that type of object will not be cached. > Defaults to 0 for GIT_OBJECT_BLOB (i.e. won't cache blobs) and 4k > for GIT_OBJECT_COMMIT, GIT_OBJECT_TREE, and GIT_OBJECT_TAG.
* opts(GIT_OPT_SET_CACHE_MAX_SIZE, ssize_t max_storage_bytes)
> Set the maximum total data size that will be cached in memory > across all repositories before libgit2 starts evicting objects > from the cache. This is a soft limit, in that the library might > briefly exceed it, but will start aggressively evicting objects > from cache when that happens. The default cache size is 256MB.
* opts(GIT_OPT_ENABLE_CACHING, int enabled)
> Enable or disable caching completely. > > Because caches are repository-specific, disabling the cache > cannot immediately clear all cached objects, but each cache will > be cleared on the next attempt to update anything in it.
* opts(GIT_OPT_GET_CACHED_MEMORY, ssize_t *current, ssize_t *allowed)
> Get the current bytes in cache and the maximum that would be > allowed in the cache.
* opts(GIT_OPT_GET_TEMPLATE_PATH, git_buf *out)
> Get the default template path. > The path is written to the out buffer.
* opts(GIT_OPT_SET_TEMPLATE_PATH, const char *path)
> Set the default template path. > > - path directory of template.
* opts(GIT_OPT_SET_SSL_CERT_LOCATIONS, const char *file, const char *path)
> Set the SSL certificate-authority locations. > > - file is the location of a file containing several > certificates concatenated together. > - path is the location of a directory holding several > certificates, one per file. > > Either parameter may be NULL, but not both.
* opts(GIT_OPT_SET_USER_AGENT, const char *user_agent)
> Set the value of the User-Agent header. This value will be > appended to "git/1.0", for compatibility with other git clients. > > - user_agent is the value that will be delivered as the > User-Agent header on HTTP requests.
* opts(GIT_OPT_SET_WINDOWS_SHAREMODE, core.stdc.config.c_ulong value)
> Set the share mode used when opening files on Windows. > For more information, see the documentation for CreateFile. > The default is: FILE_SHARE_READ | FILE_SHARE_WRITE. This is > ignored and unused on non-Windows platforms.
* opts(GIT_OPT_GET_WINDOWS_SHAREMODE, core.stdc.config.c_ulong *value)
> Get the share mode used when opening files on Windows.
* opts(GIT_OPT_ENABLE_STRICT_OBJECT_CREATION, int enabled)
> Enable strict input validation when creating new objects > to ensure that all inputs to the new objects are valid. For > example, when this is enabled, the parent(s) and tree inputs > will be validated when creating a new commit. This defaults > to enabled.
* opts(GIT_OPT_ENABLE_STRICT_SYMBOLIC_REF_CREATION, int enabled)
> Validate the target of a symbolic ref when creating it. For > example, foobar is not a valid ref, therefore foobar is > not a valid target for a symbolic ref by default, whereas > refs/heads/foobar is. Disabling this bypasses validation > so that an arbitrary strings such as foobar can be used > for a symbolic ref target. This defaults to enabled.
* opts(GIT_OPT_SET_SSL_CIPHERS, const char *ciphers)
> Set the SSL ciphers use for HTTPS connections. > > - ciphers is the list of ciphers that are eanbled.
* opts(GIT_OPT_ENABLE_OFS_DELTA, int enabled)
> Enable or disable the use of "offset deltas" when creating packfiles, > and the negotiation of them when talking to a remote server. > Offset deltas store a delta base location as an offset into the > packfile from the current location, which provides a shorter encoding > and thus smaller resultant packfiles. > Packfiles containing offset deltas can still be read. > This defaults to enabled.
* opts(GIT_OPT_ENABLE_FSYNC_GITDIR, int enabled)
> Enable synchronized writes of files in the gitdir using fsync > (or the platform equivalent) to ensure that new object data > is written to permanent storage, not simply cached. This > defaults to disabled.
opts(GIT_OPT_ENABLE_STRICT_HASH_VERIFICATION, int enabled)
> Enable strict verification of object hashsums when reading > objects from disk. This may impact performance due to an > additional checksum calculation on each object. This defaults > to enabled.
opts(GIT_OPT_SET_ALLOCATOR, git_allocator *allocator)
> Set the memory allocator to a different memory allocator. This > allocator will then be used to make all memory allocations for > libgit2 operations. If the given allocator is NULL, then the > system default will be restored.
opts(GIT_OPT_ENABLE_UNSAVED_INDEX_SAFETY, int enabled)
> Ensure that there are no unsaved changes in the index before > beginning any operation that reloads the index from disk (eg, > checkout). If there are unsaved changes, the instruction will > fail. (Using the FORCE flag to checkout will still overwrite > these changes.)
opts(GIT_OPT_GET_PACK_MAX_OBJECTS, size_t *out)
> Get the maximum number of objects libgit2 will allow in a pack > file when downloading a pack file from a remote. This can be > used to limit maximum memory usage when fetching from an untrusted > remote.
opts(GIT_OPT_SET_PACK_MAX_OBJECTS, size_t objects)
> Set the maximum number of objects libgit2 will allow in a pack > file when downloading a pack file from a remote.
opts(GIT_OPT_DISABLE_PACK_KEEP_FILE_CHECKS, int enabled) > This will cause .keep file existence checks to be skipped when > accessing packfiles, which can help performance with remote filesystems.
opts(GIT_OPT_ENABLE_HTTP_EXPECT_CONTINUE, int enabled) > When connecting to a server using NTLM or Negotiate > authentication, use expect/continue when POSTing data. > This option is not available on Windows.