summaryrefslogtreecommitdiff
path: root/include/git2/sys
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #5765 from lhchavez/cgraph-revwalksEdward Thomson2021-07-261-0/+45
|\ | | | | commit-graph: Use the commit-graph in revwalks
| * commit-graph: Create `git_commit_graph` as an abstraction for the filelhchavez2021-03-101-0/+45
| | | | | | | | | | | | | | | | | | | | This change does a medium-size refactor of the git_commit_graph_file and the interaction with the ODB. Now instead of the ODB owning a direct reference to the git_commit_graph_file, there will be an intermediate git_commit_graph. The main advantage of that is that now end users can explicitly set a git_commit_graph that is eagerly checked for errors, while still being able to lazily use the commit-graph in a regular ODB, if the file is present.
* | docs: fix some missing includes that cause Docurium to error outEtienne Samson2021-05-271-0/+1
|/
* refdb_backend: improve callback documentationPatrick Steinhardt2020-03-261-2/+109
| | | | | | | The callbacks are currently sparsely documented, making it really hard to implement a new backend without taking a look at the existing refdb_fs backend. Add documentation to make this task hopefully easier to achieve.
* Merge pull request #5336 from libgit2/ethomson/credtypePatrick Steinhardt2020-01-303-81/+96
|\ | | | | cred: change enum to git_credential_t and GIT_CREDENTIAL_*
| * credential: change git_cred to git_credentialethomson/credtypeEdward Thomson2020-01-263-81/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We avoid abbreviations where possible; rename git_cred to git_credential. In addition, we have standardized on a trailing `_t` for enum types, instead of using "type" in the name. So `git_credtype_t` has become `git_credential_t` and its members have become `GIT_CREDENTIAL` instead of `GIT_CREDTYPE`. Finally, the source and header files have been renamed to `credential` instead of `cred`. Keep previous name and values as deprecated, and include the new header files from the previous ones.
* | mempack functions: return an intEdward Thomson2020-01-241-1/+2
| | | | | | | | | | Stop returning a void for functions, future-proofing them to allow them to fail.
* | repository functions: return an intEdward Thomson2020-01-241-5/+12
| | | | | | | | | | Stop returning a void for functions, future-proofing them to allow them to fail.
* | index functions: return an intEdward Thomson2020-01-241-2/+4
|/ | | | | Stop returning a void for functions, future-proofing them to allow them to fail.
* merge: Return non-const git_repository from git_merge_driver_source_repo ↵Laurence McGlashan2020-01-151-1/+1
| | | | accessor.
* odb: use `git_object_size_t` for object sizeEdward Thomson2019-11-221-1/+1
| | | | | Instead of using a signed type (`off_t`) use a new `git_object_size_t` for the sizes of objects.
* Merge pull request #5106 from tiennou/fix/ref-api-fixesPatrick Steinhardt2019-09-271-21/+57
|\ | | | | git_refdb API fixes
| * refdb: documentationEtienne Samson2019-09-051-21/+57
| |
* | cred: separate public interface from low-level detailsEtienne Samson2019-09-131-0/+90
|/
* Merge pull request #5128 from tiennou/fix/docsPatrick Steinhardt2019-06-271-9/+9
|\ | | | | More documentation
| * docs: More of itEtienne Samson2019-06-261-9/+9
| |
* | repo: commondir resolution can sometimes fallback to the repodirEtienne Samson2019-06-261-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | For example, https://git-scm.com/docs/gitrepository-layout says: info Additional information about the repository is recorded in this directory. This directory is ignored if $GIT_COMMON_DIR is set and "$GIT_COMMON_DIR/info" will be used instead. So when looking for `info/attributes`, we need to check the commondir first, or fallback to "our" `info/attributes`.
* | docs: fixupsEtienne Samson2019-06-261-1/+1
|/
* odb: provide a free function for custom backendsethomson/odb_backend_allocationsEdward Thomson2019-02-231-0/+11
| | | | | | | | | | | | Custom backends can allocate memory when reading objects and providing them to libgit2. However, if an error occurs in the custom backend after the memory has been allocated for the custom object but before it's returned to libgit2, the custom backend has no way to free that memory and it must be leaked. Provide a free function that corresponds to the alloc function so that custom backends have an opportunity to free memory before they return an error.
* odb: rename git_odb_backend_malloc for consistencyEdward Thomson2019-02-231-2/+35
| | | | | | | | | | | | The `git_odb_backend_malloc` name is a system function that is provided for custom ODB backends and allows them to allocate memory for an ODB object in the read callback. This is important so that libgit2 can later free the memory used by an ODB object that was read from the custom backend. However, the name _suggests_ that it actually allocates a `git_odb_backend`. It does not; rename it to make it clear that it actually allocates backend _data_.
* indexer: use git_indexer_progress throughoutEdward Thomson2019-02-222-3/+3
| | | | | Update internal usage of `git_transfer_progress` to `git_indexer_progreses`.
* Remove `git_time_monotonic`remove_time_monotonicEdward Thomson2019-02-171-31/+0
| | | | | | | | | | `git_time_monotonic` was added so that non-native bindings like rugged could get high-resolution timing for benchmarking. However, this is outside the scope of libgit2 *and* rugged decided not to use this function in the first place. Google suggests that absolutely _nobody_ is using this function and we don't want to be in the benchmarking business. Remove the function.
* docs: minor changesEtienne Samson2019-01-301-12/+21
|
* transport: enhance documentationEtienne Samson2019-01-281-57/+88
|
* deprecation: deprecated stream registration in if guardEdward Thomson2019-01-251-6/+15
| | | | | | | | `git_stream_register_tls` is now deprecated; mark it in an if guard with the deprecation. This should not be included in `deprecated.h` since it is an uncommonly used `sys` header file.
* Introduce GIT_CALLBACK macro to enforce cdeclEdward Thomson2019-01-179-93/+93
| | | | | | | | | Since we now always build the library with cdecl calling conventions, our callbacks should be decorated as such so that users will not be able to provide callbacks defined with other calling conventions. The `GIT_CALLBACK` macro will inject the `__cdecl` attribute as appropriate.
* object_type: update public API to use git_object_tEdward Thomson2018-12-011-6/+6
| | | | | | git_object_t is the future; update the public API to use it. This will also ensure that we can build our tests which make use of the old API without modification (and without compiler warnings).
* stream registration: take an enum typeEdward Thomson2018-11-281-3/+15
| | | | | | Accept an enum (`git_stream_t`) during custom stream registration that indicates whether the registration structure should be used for standard (non-TLS) streams or TLS streams.
* stream: provide generic registration APIEdward Thomson2018-11-281-9/+38
| | | | | | | | | Update the new stream registration API to be `git_stream_register` which takes a registration structure and a TLS boolean. This allows callers to register non-TLS streams as well as TLS streams. Provide `git_stream_register_tls` that takes just the init callback for backward compatibliity.
* tls: introduce a wrap functionEdward Thomson2018-11-281-6/+36
| | | | | | | | | | | Introduce `git_tls_stream_wrap` which will take an existing `stream` with an already connected socket and begin speaking TLS on top of it. This is useful if you've built a connection to a proxy server and you wish to begin CONNECT over it to tunnel a TLS connection. Also update the pluggable TLS stream layer so that it can accept a registration structure that provides an `init` and `wrap` function, instead of a single initialization function.
* transport: see if cert/cred callbacks exist before calling themEdward Thomson2018-11-151-2/+8
| | | | | | | Custom transports may want to ask libgit2 to invoke a configured credential or certificate callback; however they likely do not know if a callback was actually configured. Return a sentinal value (GIT_PASSTHROUGH) if there is no callback configured instead of crashing.
* path: export the dotgit-checking functionscmn/expose-gitfile-checkCarlos Martín Nieto2018-10-151-0/+64
| | | | | | | | These checks are preformed by libgit2 on checkout, but they're also useful for performing checks in applications which do not involve checkout. Expose them under `sys/` as it's still fairly in the weeds even for this library.
* settings: allow swapping out memory allocatorPatrick Steinhardt2018-06-071-0/+24
| | | | | | | Tie in the newly created infrastructure for swapping out memory allocators into our settings code. A user can now simply use the new option "GIT_OPT_SET_ALLOCATOR" with `git_libgit2_opts`, passing in an already initialized allocator structure as vararg.
* alloc: make memory allocators use function pointersPatrick Steinhardt2018-06-071-0/+77
| | | | | | | | | | | | | | | | | Currently, our memory allocators are being redirected to the correct implementation at compile time by simply using macros. In order to make them swappable at runtime, this commit reshuffles that by instead making use of a global "git_allocator" structure, whose pointers are set up to reference the allocator functions. Like this, it becomes easy to swap out allocators by simply setting these function pointers. In order to initialize a "git_allocator", our provided allocators "stdalloc" and "crtdbg" both provide an init function. This is being called to initialize a passed in allocator struct and set up its members correctly. No support is yet included to enable users of libgit2 to switch out the memory allocator at a global level.
* docs: correct defgroupEtienne Samson2018-05-071-1/+1
|
* docs: fix incorrect codeblock on outputEtienne Samson2018-05-071-35/+35
|
* docs: fix more missing includesEtienne Samson2018-05-072-0/+8
|
* odb: provide length and type with streaming readEdward Thomson2018-02-011-1/+2
| | | | | The streaming read functionality should provide the length and the type of the object, like the normal read functionality does.
* odb: export mempack backendAdrián Medraño Calvo2018-01-221-4/+5
| | | | Fixes #4492, #4496.
* config: pass repository when opening config filesPatrick Steinhardt2017-10-091-1/+4
| | | | | | | | | | | | | | | | | Our current configuration logic is completely oblivious of any repository, but only cares for actual file paths. Unfortunately, we are forced to break this assumption by the introduction of conditional includes, which are evaluated in the context of a repository. Right now, only one conditional exists with "gitdir:" -- it will only include the configuration if the current repository's git directory matches the value passed to "gitdir:". To support these conditionals, we have to break our API and make the repository available when opening a configuration file. This commit extends the `open` call of configuration backends to include another repository and adjusts existing code to have it available. This includes the user-visible functions `git_config_add_file_ondisk` and `git_config_add_backend`.
* Remove unused 'sys/remote.h' headerethomson/remove_sys_remote_hEdward Thomson2017-07-311-16/+0
|
* Adding git_filter_init for initializing `git_filter` struct + unit test Mohseen Mukaddam2017-06-131-0/+11
|
* adding GIT_FILTER_VERSION to GIT_FILTER_INIT as part of conventionMohseen Mukaddam2017-06-131-1/+1
|
* transport: provide a getter for the proxy optionscmn/transport-get-proxyCarlos Martín Nieto2017-04-171-0/+10
| | | | | | | | As with the callbacks, third-party implementations of smart subtransports cannot reach into the opaque struct and thus cannot know what options the user set. Add a getter for these options to copy the proxy options into something external implementors can use.
* merge_driver: fix const-correctness for source gettersPatrick Steinhardt2017-03-151-5/+5
|
* Allow for caching of submodules.Brock Peabody2017-01-201-0/+29
| | | | | | | | | | | | | | Added `git_repository_submodule_cache_all` to initialze a cache of submodules on the repository so that operations looking up N submodules are O(N) and not O(N^2). Added a `git_repository_submodule_cache_clear` function to remove the cache. Also optimized the function that loads all submodules as it was itself O(N^2) w.r.t the number of submodules, having to loop through the `.gitmodules` file once per submodule. I changed it to process the `.gitmodules` file once, into a map. Signed-off-by: David Turner <dturner@twosigma.com>
* time: Export `git_time_monotonic`vmg/timeVicent Marti2016-09-131-0/+31
|
* odb: freshen existing objects when writingEdward Thomson2016-08-041-0/+11
| | | | | | When writing an object, we calculate its OID and see if it exists in the object database. If it does, we need to freshen the file that contains it.
* proxy: add a payload field for the proxy optionsCarlos Martín Nieto2016-04-191-0/+16
| | | | | I don't quite recall what we do in the other places where we use this, but we should pass this payload to the callbacks.
* net: use proxy options struct in the stream configCarlos Martín Nieto2016-04-191-1/+2
|