summaryrefslogtreecommitdiff
path: root/include/git2/sys
Commit message (Collapse)AuthorAgeFilesLines
* streams: sockets are non-blocking and can timeoutEdward Thomson2023-05-131-2/+16
| | | | | | | | | | | | | | | Make socket I/O non-blocking and add optional timeouts. Users may now set `GIT_OPT_SET_SERVER_CONNECT_TIMEOUT` to set a shorter connection timeout. (The connect timeout cannot be longer than the operating system default.) Users may also now configure the socket read and write timeouts with `GIT_OPT_SET_SERVER_TIMEOUT`. By default, connects still timeout based on the operating system defaults (typically 75 seconds) and socket read and writes block. Add a test against our custom testing git server that ensures that we can timeout reads against a slow server.
* oid: use an oid array instead of shallowarrayEdward Thomson2023-05-091-9/+13
| | | | | | Users should provide us an array of object ids; we don't need a separate type. And especially, we should not be mutating user-providing values. Instead, use `git_oid *` in the shallow code.
* Merge remote-tracking branch 'origin/main' into shallow-clone-networkEdward Thomson2023-04-222-3/+17
|\
| * commit graph: support sha256Edward Thomson2023-04-101-2/+12
| |
| * midx: support sha256Edward Thomson2023-04-101-1/+5
| |
* | Remove unused git_transport_flags_tlmcglash2023-03-101-9/+0
| |
* | Merge commit 'd066d0d95c43e97df6624292f3f527f9372ca8fe'lmcglash2023-03-101-0/+12
|\ \ | |/
| * transport: teach transports about oid types and SHA256Edward Thomson2023-02-121-0/+12
| |
* | Merge branch 'transportPR' into shallow-clone-networkyuangli2022-07-291-2/+24
|\ \ | |/ |/|
| * Merge branch 'pr/tiennou/4747' into transportPRyuangli2022-07-041-2/+15
| |
* | oid: `GIT_OID_*SZ` is now `GIT_OID_SHA1_*SIZE`Edward Thomson2022-06-141-1/+1
| | | | | | | | | | In preparation for SHA256 support, `GIT_OID_RAWSZ` and `GIT_OID_HEXSZ` need to indicate that they're the size of _SHA1_ OIDs.
* | transport: remove `git_transport_smart_proxy_options` Edward Thomson2022-06-121-10/+0
| | | | | | Snuck in during refactoring; let's get rid of it.
* | Apply suggestions from code reviewlhchavez2022-06-112-1/+3
| | | | | | Co-authored-by: Edward Thomson <ethomson@github.com>
* | transport: introduce `git_transport_smart_remote_connect_options`lhchavez2022-04-162-2/+29
| | | | | | | | | | | | | | | | | | | | | | 6fc6eeb66c40310086c8f059cae41de69ad4c6da removed `git_transport_smart_proxy_option`, and there was nothing added to replace it. That made it hard for custom transports / smart subtransports to know what remote connect options to use (e.g. proxy options). This change introduces `git_transport_smart_remote_connect_options` to replace it.
* | transport: transports can indicate support for fetch by oidEdward Thomson2022-02-061-0/+31
| |
* | transport: add capabilities query functionEdward Thomson2022-02-061-0/+10
| |
* | remote: introduce `git_remote_connect_options`ethomson/remote_connect_optsEdward Thomson2022-01-061-33/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The existing mechanism for providing options to remote fetch/push calls, and subsequently to transports, is unsatisfactory. It requires an options structure to avoid breaking the API and callback signatures. 1. Introduce `git_remote_connect_options` to satisfy those needs. 2. Add a new remote connection API, `git_remote_connect_ext` that will take this new options structure. Existing `git_remote_connect` calls will proxy to that. `git_remote_fetch` and `git_remote_push` will proxy their fetch/push options to that as well. 3. Define the interaction between `git_remote_connect` and fetch/push. Connect _may_ be called before fetch/push, but _need not_ be. The semantics of which options would be used for these operations was not specified if you specify options for both connect _and_ fetch. Now these are defined that the fetch or push options will be used _if_ they were specified. Otherwise, the connect options will be used if they were specified. Otherwise, the library's defaults will be used. 4. Update the transports to understand `git_remote_connect_options`. This is a breaking change to the systems API.
* | Make enum in includes C90 compliant by removing trailing comma.Peter Pettersson2021-11-153-4/+4
| |
* | Update documentation for ODB backend refresh logicJosh Triplett2021-11-081-5/+2
|/ | | | | | | Commit b1a6c316a6070fac4ab1ec5792979838f7145c39 moved auto-refresh into the pack backend, and added a comment accordingly. Commit 43820f204ea32503b4083e3b6b83f30a0a0031c9 moved auto-refresh back *out* of backends into the ODB layer, but didn't update the comment.
* email: introduce `git_email_create_from_diff`Edward Thomson2021-09-181-0/+45
| | | | | | | | | Introduce a function to create an email from a diff and multiple inputs about the source of the diff. Creating an email from a diff requires many more inputs, and should be discouraged in favor of building directly from a commit, and is thus in the `sys` namespace.
* Merge branch 'cgraph-write' into mainEdward Thomson2021-08-301-1/+130
|\
| * commit graph: formatting fixesEdward Thomson2021-08-301-3/+2
| |
| * Merge remote-tracking branch 'origin/main' into cgraph-writelhchavez2021-08-292-0/+81
| |\
| * | Make the defaultable fields defaultablelhchavez2021-08-261-2/+2
| | | | | | | | | | | | Also, add `git_commit_graph_writer_options_init`!
| * | commit-graph: Add a way to write commit-graph fileslhchavez2021-07-271-1/+131
| | | | | | | | | | | | | | | | | | | | | | | | This change adds the git_commit_graph_writer_* functions to allow to write and create `commit-graph` files from `.idx`/`.pack` files or `git_revwalk`s. Part of: #5757
* | | Merge pull request #6011 from libgit2/ethomson/filter_applyEdward Thomson2021-08-291-28/+49
|\ \ \ | |_|/ |/| | filter: filter drivers stop taking git_buf as user input
| * | filter: deprecate apply functionethomson/filter_applyEdward Thomson2021-08-291-0/+8
| | |
| * | filter: add docs for `git_filter_stream_fn`Edward Thomson2021-08-271-28/+41
| |/
* | midx: Introduce git_odb_write_multi_pack_index()lhchavez2021-08-271-0/+7
| | | | | | | | | | | | | | | | This change introduces git_odb_write_multi_pack_index(), which creates a `multi-pack-index` file from all the `.pack` files that have been loaded in the ODB. Fixes: #5399
* | midx: Add a way to write multi-pack-index fileslhchavez2021-08-271-0/+74
|/ | | | | | | This change adds the git_midx_writer_* functions to allow to write and create `multi-pack-index` files from `.idx`/`.pack` files. Part of: #5399
* 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_.