summaryrefslogtreecommitdiff
path: root/src/libgit2.c
Commit message (Collapse)AuthorAgeFilesLines
* str: introduce `git_str` for internal, `git_buf` is externalethomson/gitstrEdward Thomson2021-10-171-11/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | libgit2 has two distinct requirements that were previously solved by `git_buf`. We require: 1. A general purpose string class that provides a number of utility APIs for manipulating data (eg, concatenating, truncating, etc). 2. A structure that we can use to return strings to callers that they can take ownership of. By using a single class (`git_buf`) for both of these purposes, we have confused the API to the point that refactorings are difficult and reasoning about correctness is also difficult. Move the utility class `git_buf` to be called `git_str`: this represents its general purpose, as an internal string buffer class. The name also is an homage to Junio Hamano ("gitstr"). The public API remains `git_buf`, and has a much smaller footprint. It is generally only used as an "out" param with strict requirements that follow the documentation. (Exceptions exist for some legacy APIs to avoid breaking callers unnecessarily.) Utility functions exist to convert a user-specified `git_buf` to a `git_str` so that we can call internal functions, then converting it back again.
* common: support custom repository extensionsethomson/extensionsEdward Thomson2021-09-041-0/+23
| | | | | | | | | | Allow users to specify additional repository extensions that they want to support. For example, callers can specify that they support `preciousObjects` and then may open repositories that support `extensions.preciousObjects`. Similarly, callers may opt out of supporting extensions that the library itself supports.
* mbedTLS: Fix setting certificate directoryethomson/custom_cert_locationsZachary Michaels2021-08-291-4/+1
| | | | fixes #6003
* openssl: dynamically load libssl and symbols (optionally)Edward Thomson2021-08-241-8/+0
| | | | | | | | | | Provide an interface around OpenSSL to dynamically load the libraries and symbols, so that users can distribute a libgit2 library that is not linked directly against OpenSSL. This enables users to target multiple distributions with a single binary. This mechanism is optional and disabled by default. Configure cmake with -DUSE_HTTPS=OpenSSL-Dynamic to use it.
* odb: Implement option for overriding of default odb backend priorityTony De La Nuez2021-07-301-0/+10
| | | | | | | | | | | Introduce GIT_OPT_SET_ODB_LOOSE_PRIORITY and GIT_OPT_SET_ODB_PACKED_PRIORITY to allow overriding the default priority values for the default ODB backends. Libgit2 has historically assumed that most objects for long- running operations will be packed, therefore GIT_LOOSE_PRIORITY is set to 1 by default, and GIT_PACKED_PRIORITY to 2. When a client allows libgit2 to set the default backends, they can specify an override for the two priority values in order to change the order in which each ODB backend is accessed.
* libgit2: provide init_count of the libraryEdward Thomson2020-12-091-0/+5
| | | | | | A function to provide the initialization count of the library; this is subject to race conditions but is useful for a naive determination as to whether the library has been initialized or not.
* threads: rename thread files to thread.[ch]Edward Thomson2020-12-061-1/+1
|
* buffer: git_buf_sanitize should return a valueEdward Thomson2020-11-251-22/+29
| | | | | | `git_buf_sanitize` is called with user-input, and wants to sanity-check that input. Allow it to return a value if the input was malformed in a way that we cannot cope.
* win32: consolidate leak checking initializationEdward Thomson2020-11-211-0/+7
| | | | | Move leak check initialization into git_win32_leakcheck_global_init, and call it on library initialization.
* win32: "crtdbg" is now "leakcheck"Edward Thomson2020-11-211-1/+0
| | | | | msvc crtdbg is a mouthfull that is not particularly indicative of what it does. Let's rename it to "win32 leakcheck".
* Move libgit2 settings into libgit2.cethomson/initEdward Thomson2020-10-111-9/+318
|
* Rename global.c to libgit2.cEdward Thomson2020-10-111-0/+52
Now that we've identified that our global settings really aren't global at all, and refactored the library to match that, change global.c to libgit2.c, which is especially nice since the prefix of the functions matches the filename.