summaryrefslogtreecommitdiff
path: root/include/git2
Commit message (Collapse)AuthorAgeFilesLines
* str: introduce `git_str` for internal, `git_buf` is externalethomson/gitstrEdward Thomson2021-10-171-78/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* diff: document updated rename limitethomson/diff_rename_limitEdward Thomson2021-10-131-1/+1
|
* Merge pull request #6076 from libgit2/ethomson/oidarray_disposeEdward Thomson2021-09-272-8/+29
|\ | | | | oidarray: introduce `git_oidarray_dispose`
| * oidarray: introduce `git_oidarray_dispose`ethomson/oidarray_disposeEdward Thomson2021-09-262-8/+29
| | | | | | | | | | | | Since users are disposing the _contents_ of the oidarray, not freeing the oidarray itself, the proper cleanup function is `git_oidarray_dispose`. Deprecate `git_oidarray_free`.
* | repository: improve `hashfile` for absolute pathsEdward Thomson2021-09-251-5/+7
|/ | | | | | | | | | | | | When `git_repository_hashfile` is handed an absolute path, it determines whether the path is within the repository's working directory or not. This is necessary when there is no `as_path` specified. If the path is within the working directory, then the given path should be used for attribute lookups (it is the effective `as_path`). If it is not within the working directory, then it is _not_ eligible. Importantly, now we will _never_ pass an absolute path down to attribute lookup functions.
* v1.3: update version numberethomson/v1_3Edward Thomson2021-09-221-3/+3
|
* Merge pull request #6068 from libgit2/ethomson/diff_enumEdward Thomson2021-09-221-4/+3
|\ | | | | diff: update `GIT_DIFF_IGNORE_BLANK_LINES`
| * diff: update `GIT_DIFF_IGNORE_BLANK_LINES`ethomson/diff_enumEdward Thomson2021-09-211-4/+3
| | | | | | | | | | `GIT_DIFF_IGNORE_BLANK_LINES` needs to be within a (signed) int, per the `enum` definition of ISO C.
* | filter: use a `git_oid` in filter options, not a pointerethomson/filter_commit_idEdward Thomson2021-09-213-3/+21
|/ | | | | | | Using a `git_oid *` in filter options was a mistake; it is a deviation from our typical pattern, and callers in some languages that GC may need very special treatment in order to pass both an options structure and a pointer outside of it.
* Merge pull request #6061 from libgit2/ethomson/emailEdward Thomson2021-09-204-93/+268
|\ | | | | Introduce `git_email_create`; deprecate `git_diff_format_email`
| * diff: deprecate diff_format_emailethomson/emailEdward Thomson2021-09-182-93/+96
| | | | | | | | `git_diff_format_email` is deprecated in favor of `git_email_create`.
| * email: include renames by defaultEdward Thomson2021-09-181-2/+10
| | | | | | | | | | `git format-patch` includes diffs with rename detection enabled by default when creating emails. Match this behavior.
| * email: include binary diffs by defaultEdward Thomson2021-09-181-5/+9
| | | | | | | | | | `git format-patch` includes binary diffs by default when creating emails. Match this behavior.
| * email: introduce `git_email_create_from_diff`Edward Thomson2021-09-182-13/+67
| | | | | | | | | | | | | | | | | | 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.
| * email: introduce `git_email_create_from_commit`Edward Thomson2021-09-181-0/+106
| | | | | | | | | | | | Create `git_email_*` which will encapsulate email creation and application, and `git_email_create_from_commit` in particular, which creates an email for a single commit.
* | Merge pull request #6020 from ↵Edward Thomson2021-09-201-3/+3
|\ \ | |/ |/| | | | | lolgear/refactoring/stdint_ifdef_condition_has_been_reverted Stdint header condition has been reverted.
| * include: stdint header condition has been reverted.Dmitry Lobanov2021-08-301-3/+3
| |
* | Merge pull request #6031 from libgit2/ethomson/extensionsEdward Thomson2021-09-141-1/+19
|\ \ | | | | | | Support custom git extensions
| * | common: support custom repository extensionsethomson/extensionsEdward Thomson2021-09-041-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Fix coding style for pointerpunkymaniac2021-09-095-12/+12
| | | | | | | | | | | | Make some syntax change to follow coding style.
* | | remote: Mark `git_remote_name_is_valid` as `GIT_EXTERN`lhchavez2021-09-041-1/+1
|/ / | | | | | | | | | | | | This change makes `git_remote_name_is_valid` be part of the public interface of the library. This is needed for other language bindings to be able to find this symbol (like in git2go, when linking against libgit2 dynamically).
* | v1.2: update version informationEdward Thomson2021-08-311-3/+3
| |
* | Merge branch 'cgraph-write' into mainEdward Thomson2021-08-302-1/+133
|\ \ | |/ |/|
| * commit graph: formatting fixesEdward Thomson2021-08-301-3/+2
| |
| * Merge remote-tracking branch 'origin/main' into cgraph-writelhchavez2021-08-296-8/+112
| |\
| * \ Merge remote-tracking branch 'origin/main' into cgraph-writelhchavez2021-08-2611-137/+441
| |\ \
| * | | 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-272-1/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 #6017 from libgit2/ethomson/buf_is_readonlyEdward Thomson2021-08-291-0/+55
|\ \ \ \ | | | | | | | | | | buf: deprecate public git_buf writing functions
| * | | | buf: deprecate public git_buf writing functionsethomson/buf_is_readonlyEdward Thomson2021-08-291-0/+55
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A `git_buf` is now a read-only structure as far as callers are concerned. This is a mechanism that we can return data to callers using memory that is owned by the library and can be cleaned up by callers (using `git_buf_dispose`). A `git_buf` can no longer be allocated by callers or provided to the library.
* | | | 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
| |/ / /
* | | | Merge pull request #6016 from libgit2/ethomson/commit_create_cbEdward Thomson2021-08-293-20/+81
|\ \ \ \ | | | | | | | | | | Introduce `create_commit_cb`, deprecate `signing_cb`
| * | | | rebase: deprecate signing_cbethomson/commit_create_cbEdward Thomson2021-08-293-22/+31
| | | | | | | | | | | | | | | | | | | | | | | | | The signing callback should not be used; instead, callers should provide a commit_create_cb, perform the signing and commit creation themselves.
| * | | | rebase: introduce git_commit_create_cbEdward Thomson2021-08-292-0/+52
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | Introduce a new mechanism for `git_rebase_commit` for callers to customize the experience. Instead of assuming that we produce the commit for them, provide a commit creation callback that allows callers to produce the commit themselves and return the resulting commit id.
* | | | Merge pull request #6012 from libgit2/ethomson/custom_urlEdward Thomson2021-08-291-3/+52
|\ \ \ \ | |_|_|/ |/| | | remote: introduce remote_ready_cb, deprecate resolve_url callback
| * | | remote: deprecate resolve_url callbackethomson/custom_urlEdward Thomson2021-08-291-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Using a callback to set a resolve_url is not particularly idiomatic. Deprecate it in favor of the `set_instance_url` and `set_instance_pushurl` functions which can now be called from the `git_remote_ready_cb` callback.
| * | | remote: introduce git_remote_ready_cbEdward Thomson2021-08-291-0/+17
| | | | | | | | | | | | | | | | Introduce a new callback that fires when the remote is ready to connect.
| * | | remote: introduce set_instance_urlEdward Thomson2021-08-271-3/+25
| |/ / | | | | | | | | | | | | | | | Users may want to override the URL on a particular instance of a remote, instead of updating the configuration. Previously, users could use a callback to do this, but this is not particularly idiomatic.
* | | Merge pull request #5841 from J0Nes90/features/checkout-dry-runEdward Thomson2021-08-291-0/+6
|\ \ \ | | | | | | | | Checkout dry-run
| * | | Update include/git2/checkout.hEdward Thomson2021-08-291-1/+4
| | | |
| * | | implement GIT_CHECKOUT_DRY_RUN to allow notifications without touching the ↵Jochen Hunz2021-04-141-0/+3
| | | | | | | | | | | | | | | | working directory
* | | | Merge pull request #5405 from lhchavez/multi-pack-index-odb-writeEdward Thomson2021-08-292-0/+21
|\ \ \ \ | | | | | | | | | | midx: Introduce git_odb_write_multi_pack_index()
| * | | | midx: Introduce git_odb_write_multi_pack_index()lhchavez2021-08-272-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-272-0/+77
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | 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 #5395 from josharian/http-use-eauthEdward Thomson2021-08-291-6/+6
|\ \ \ \ | | | | | | | | | | Use error code GIT_EAUTH for authentication failures
| * \ \ \ Merge branch 'main' into http-use-eauthEdward Thomson2021-08-2936-304/+1108
| |\ \ \ \ | | |/ / /
| * | | | use consistent whitespace before commentsJosh Bleecher Snyder2020-02-071-6/+6
| | | | |
* | | | | Merge remote-tracking branch 'origin/main' into multi-pack-index-writelhchavez2021-08-2712-139/+461
|\ \ \ \ \ | | |/ / / | |/| | |