src


Log

Author Commit Date CI Message
Edward Thomson ed0ea96e 2021-08-30T09:02:26 date: promote before multiply
Edward Thomson f93beebc 2021-08-30T08:49:00 filter: don't overwrite error value
Edward Thomson 9191ef70 2021-08-30T08:40:26 error: don't check string after assert
Edward Thomson 50b3c2d5 2021-08-30T08:31:50 pack: don't assert in the lock
Edward Thomson 036be150 2021-08-30T08:47:04 hashsig: close fd on error
Edward Thomson e7eb6c6b 2021-08-30T08:28:56 midx: return an error when detected
Edward Thomson 5eb2b0b3 2021-08-30T08:27:27 httpclient: actually return `GIT_EAUTH`
Edward Thomson 969a056c 2021-08-29T22:54:01 Merge pull request #6017 from libgit2/ethomson/buf_is_readonly buf: deprecate public git_buf writing functions
Edward Thomson b16a36e1 2021-08-29T22:53:49 Merge pull request #6011 from libgit2/ethomson/filter_apply filter: filter drivers stop taking git_buf as user input
Edward Thomson 258115db 2021-08-29T22:53:38 Merge pull request #6016 from libgit2/ethomson/commit_create_cb Introduce `create_commit_cb`, deprecate `signing_cb`
Edward Thomson 16a2e667 2021-08-29T22:53:28 Merge pull request #6012 from libgit2/ethomson/custom_url remote: introduce remote_ready_cb, deprecate resolve_url callback
Edward Thomson 9f84003c 2021-08-29T22:34:19 Merge pull request #6009 from libgit2/ethomson/custom_cert_locations opts: test GIT_OPT_SET_SSL_CERT_LOCATIONS
Zachary Michaels cdb9f390 2021-08-24T17:37:15 mbedTLS: Fix setting certificate directory fixes #6003
Edward Thomson 2998a84a 2021-08-29T21:49:33 Merge pull request #5841 from J0Nes90/features/checkout-dry-run Checkout dry-run
Edward Thomson 147b659f 2021-08-29T21:40:26 Merge pull request #5405 from lhchavez/multi-pack-index-odb-write midx: Introduce git_odb_write_multi_pack_index()
Edward Thomson 18293385 2021-08-29T21:40:16 Merge pull request #5395 from josharian/http-use-eauth Use error code GIT_EAUTH for authentication failures
Edward Thomson c3512fe6 2021-08-29T21:35:40 Merge branch 'main' into multi-pack-index-odb-write
Edward Thomson 78cd7624 2021-08-29T21:30:51 Merge pull request #5404 from lhchavez/multi-pack-index-write midx: Add a way to write multi-pack-index files
Edward Thomson 9937967e 2021-08-29T21:29:14 Merge branch 'main' into http-use-eauth
Edward Thomson d2316d57 2021-08-29T13:10:44 buf: deprecate public git_buf writing functions 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.
Edward Thomson 5bcef522 2021-08-27T17:06:50 filter: deprecate apply function
Edward Thomson 7442c000 2021-08-27T11:25:51 remote: deprecate resolve_url callback 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.
Edward Thomson 72df17c6 2021-08-27T10:59:51 remote: introduce git_remote_ready_cb Introduce a new callback that fires when the remote is ready to connect.
Edward Thomson ef03e150 2021-08-29T10:14:01 rebase: deprecate signing_cb The signing callback should not be used; instead, callers should provide a commit_create_cb, perform the signing and commit creation themselves.
Edward Thomson d3bdf33b 2021-08-29T09:36:01 rebase: introduce git_commit_create_cb 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.
Edward Thomson f593fa97 2021-08-27T16:46:21 ident: use streaming filters
Edward Thomson c1f4f45e 2021-08-27T16:43:00 crlf: use streaming filters
Edward Thomson a8943c04 2021-08-27T15:59:01 filter: proxy_stream is now git_filter_buffered_stream The filter's proxy_stream is used to adapt filters that only provided an `apply` function into a `stream` function. Make this internal to the library instead of private to the filter file. This will allow the filters to use it directly, instead of relying on the filter functionality to do the proxying.
Edward Thomson 67240677 2021-05-14T00:33:08 remote: introduce set_instance_url 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.
Edward Thomson 45489a11 2021-08-27T08:29:27 Merge pull request #6008 from boretrk/array git_array_alloc: return objects of correct type
Edward Thomson 34e685c0 2021-08-27T08:28:01 Merge pull request #5747 from lhchavez/atomic-tests Homogenize semantics for atomic-related functions
lhchavez ea285904 2020-02-18T00:02:13 midx: Introduce git_odb_write_multi_pack_index() 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
lhchavez 9d117e38 2020-02-17T21:28:13 midx: Add a way to write multi-pack-index files 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
lhchavez e66545e3 2021-08-27T04:06:54 Merge remote-tracking branch 'origin/main' into multi-pack-index-write
lhchavez 366115e0 2021-08-27T04:06:31 Review feedback
lhchavez 74708a81 2020-12-20T12:45:01 Homogenize semantics for atomic-related functions There were some subtle semantic differences between the various implementations of atomic functions. Now they behave the same, have tests and are better documented to avoid this from happening again in the future. Of note: * The semantics chosen for `git_atomic_compare_and_swap` match `InterlockedCompareExchangePointer`/`__sync_cal_compare_and_swap` now. * The semantics chosen for `git_atomic_add` match `InterlockedAdd`/`__atomic_add_fetch`. * `git_atomic_swap` and `git_atomic_load` still have a bit of semantic difference with the gcc builtins / msvc interlocked operations, since they require an l-value (not a pointer). If desired, this can be homogenized.
Alexander Ovchinnikov cb078d51 2021-08-05T14:02:54 Check if default branch matches refspec
Alexander Ovchinnikov 6bb35878 2021-02-08T00:49:21 clone: set refs/remotes/origin/HEAD to default branch when branch is specified, attempt 2
Alexander Ovchinnikov 8643b524 2021-02-08T00:40:50 Revert "Merge pull request #5775 from libgit2/ethomson/clone_branch" This reverts commit 487f2a8287c4d1d41d39e05ac53d0e50c679d7e9, reversing changes made to c6cf7f0e6927f1b264a7dda2467d70b9f744a01f.
Peter Pettersson f062eb62 2021-08-25T22:12:57 git_array_alloc: return objects of correct type
Edward Thomson fabacb7c 2021-08-25T15:24:35 Merge pull request #6007 from boretrk/array array: check dereference from void * type
Edward Thomson c7a195a1 2021-08-25T14:11:03 Merge pull request #6006 from boretrk/c11-warnings GCC C11 warnings
Peter Pettersson 7f1dd703 2021-08-25T20:08:58 array: fix dereference from void * type
Peter Pettersson bcc0d750 2021-08-25T18:58:39 array: make gcc keep the type of the NULL return value
Peter Pettersson 4bbe5e6e 2021-08-25T18:14:10 win32: name the dummy union in GIT_REPARSE_DATA_BUFFER Instead of buf->"typeofbuffer"ReparseBuffer the members will be referenced with buf->ReparseBuffer."typeofbuffer" https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/ns-ntifs-_reparse_data_buffer?redirectedfrom=MSDN calls the union DUMMYUNIONNAME but that looks a bit cluttered.
Edward Thomson efc4e7e5 2021-08-25T12:30:06 Merge pull request #5802 from lhchavez/git-warn-unused-result Introduce GIT_WARN_UNUSED_RESULT
Edward Thomson 0850b172 2021-08-25T12:20:50 Merge pull request #5950 from boretrk/posixtest open: input validation for empty segments in path
Peter Pettersson 40f3702c 2021-08-25T11:36:06 c90/c99: name the unnamed union in git_hash_ctx
Edward Thomson 9fce506c 2021-08-24T15:53:10 openssl: lazily load libraries when dynamically loading Defer dlopen until it's needed when dynamically loading OpenSSL libraries.
Edward Thomson aad497cb 2021-08-24T14:08:43 openssl: dynamically load on macOS
Edward Thomson 5158b0b7 2021-08-24T11:56:22 ntlmclient: update to ntlmclient 0.9.1 The ntlmclient dependency can now dynamically load OpenSSL.
Edward Thomson 0903cac1 2021-08-11T01:30:38 openssl: dynamically load libssl and symbols (optionally) 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.
Edward Thomson 150eddd9 2021-08-10T21:41:05 openssl: separate legacy api Refactor the OpenSSL stream implementation so that the legacy code is better abstracted. This will enable future development.
Edward Thomson 1903cfef 2021-08-19T16:49:41 openssl: don't fail when we can't customize allocators During valgrind runs, we try to swap out the OpenSSL allocators for our own. This allows us to avoid some unnecessary warnings about usage. Unfortunately, many builds of OpenSSL do not allow you to swap allocators; for example FIPS builds and the builds running in CentOS. Try to swap the allocators, but do not fail when they cannot be customized.
Peter Pettersson 727d903a 2021-08-18T21:01:36 sha1dc: remove conditional for <sys/types.h>
Julien Richard 2dbe413e 2021-08-17T11:34:11 Fix LIBGIT2_FILENAME not being passed to the resource compiler
Edward Thomson c1c59843 2021-08-14T11:15:51 Merge pull request #5972 from libgit2/ethomson/http_empty_password http: don't require a password
Edward Thomson 5fd44239 2021-08-10T10:06:43 Merge pull request #5854 from alexjg/respect-force-flag-in-remote-fetch Respect the force flag on refspecs in git_remote_fetch
lhchavez 991ccdc5 2021-08-01T06:19:15 formatting
lhchavez b060080e 2021-07-30T06:53:49 Get Win32 builds to build Previously, the location of `GIT_WARN_UNUSED_RESULT` was causing it to be included _after_ a bunch of other headers (namely `src/vector.h`), which broke the build. This change does two things: * Moves the `GIT_WARN_UNUSED_RESULT` above most of the `$include`s in `src/common.h`. * Stops including `vector.h` from `src/win32/path_w32.c` since the header itself does not use it.
lhchavez 4e8376a9 2021-07-30T06:34:15 Move GIT_WARN_UNUSED_RESULT from the public to the private API
lhchavez c4cbab32 2021-07-30T06:33:56 Handle one more unused variable introduced since the PR started
lhchavez 4bb1568f 2021-03-04T06:14:36 Be a little bit less aggressive GIT_WARN_UNUSED_RESULT Now we're limiting ourselves to only functions that allocate or acquire locks.
lhchavez 231ca4fa 2021-02-23T19:33:34 Proof-of-concept for a more aggressive GIT_UNUSED() This adds a `-Wunused-result`-proof `GIT_UNUSED()`, just to demonstrate that it works. With this, sortedcache.h is now completely `GIT_WARN_UNUSED_RESULT`-annotated!
lhchavez 9eb17d46 2021-02-16T19:38:34 Introduce GIT_WARN_UNUSED_RESULT This change adds the GIT_WARN_UNUSED_RESULT annotation, which makes the compiler warn when a return result is not used. This avoids bugs.
Peter Pettersson 4584660e 2021-08-08T12:13:16 bugfix: don't generate paths with empty segments
Peter Pettersson e96fc028 2021-08-08T13:22:53 tests: optional test for p_open() with empty path segments
Edward Thomson 28841241 2021-08-05T08:12:28 http: don't require a password Attempt authentication when a username is presented but a password is not; this can happen in particular when users are doing token authentication and specifying the token in the URL itself. For example, `https://token@host/` is a valid URI and should be treated as a username of `token` with an empty password.
Alex Good a5696702 2021-07-08T11:58:28 skip descendant check if remote ref not found
Edward Thomson 3062a633 2021-07-30T12:03:35 cmake: extended futimens checking on macOS
Edward Thomson e5975f36 2021-07-30T11:37:12 tests: reset odb backend priority
Tony De La Nuez cd460522 2020-04-20T22:16:52 odb: Implement option for overriding of default odb backend priority 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.
Edward Thomson cc68c19a 2021-07-30T08:56:51 Merge branch 'pr/5861'
Edward Thomson 708d9336 2021-07-30T08:34:28 Merge pull request #5953 from boretrk/c99-inline common.h: use inline when compiling for C99 and later
Edward Thomson 003a1df6 2021-07-29T08:48:17 Merge pull request #5952 from libgit2/ethomson/attrs_from_commit Support reading attributes from a specific commit
lhchavez 8d453f16 2021-07-27T13:00:31 Swap the order of the `git_graph_reachable_from_any` params len, array -> array, len
lhchavez ce5400cd 2021-01-06T06:26:09 graph: Create `git_graph_reachable_from_any()` This change introduces a new API function `git_graph_reachable_from_any()`, that answers the question whether a commit is reachable from any of the provided commits through following parent edges. This function can take advantage of optimizations provided by the existence of a `commit-graph` file, since it makes it faster to know whether, given two commits X and Y, X cannot possibly be an reachable from Y. Part of: #5757
lhchavez fff209c4 2020-02-17T21:28:13 midx: Add a way to write multi-pack-index files 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
lhchavez 6f544140 2021-01-05T19:45:23 commit-graph: Introduce `git_commit_list_generation_cmp` This change makes calculations of merge-bases a bit faster when there are complex graphs and the commit times cause visiting nodes multiple times. This is done by visiting the nodes in the graph in reverse generation order when the generation number is available instead of commit timestamp. If the generation number is missing in any pair of commits, it can safely fall back to the old heuristic with no negative side-effects. Part of: #5757
Peter Pettersson 88a3b8e1 2021-07-26T23:12:12 common.h: use inline when compiling for c99 and later
Edward Thomson 2370e491 2021-07-26T16:27:54 Merge pull request #5765 from lhchavez/cgraph-revwalks commit-graph: Use the commit-graph in revwalks
Edward Thomson 43b5075d 2021-07-22T17:07:56 Merge pull request #5890 from lolgear/git_submodule_dup [Submodule] Git submodule dup
Edward Thomson c87e4760 2021-07-22T16:51:11 Merge branch 'pr/5948' into main
Edward Thomson fe40de40 2021-07-22T16:50:26 trace: drop unnecessary write indirection
Edward Thomson 1439b9ff 2021-07-22T15:29:54 filter: introduce GIT_BLOB_FILTER_ATTRIBUTES_FROM_COMMIT Provide a mechanism to filter using attribute data from a specific commit (making use of `GIT_ATTR_CHECK_INCLUDE_COMMIT`).
Edward Thomson 0bd547a8 2021-07-22T15:29:46 attr: introduce GIT_ATTR_CHECK_INCLUDE_COMMIT Introduce `GIT_ATTR_CHECK_INCLUDE_COMMIT`, which like 4fd5748 allows attribute information to be read from files in the repository. 4fd5748 always reads the information from HEAD, while `GIT_ATTR_CHECK_INCLUDE_COMMIT` allows users to provide the commit to read the attributes from.
Edward Thomson 093d579f 2021-07-22T15:07:35 attr: cache nonexistent attr files from commits When looking up an attribute file in a commit, we can cache a nonexistent attribute file indefinitely (since a commit could not somehow later contain an attribute file). Cache an empty buffer when an attribute file does not exist in a given commit.
Edward Thomson d7e8b934 2021-06-16T09:08:38 filter: add git_filter_options Allow filter users to provide an options structure instead of simply flags. This allows for future growth for filter options.
Edward Thomson 1db5b219 2021-06-16T09:06:26 filter: filter options are now "filter sessions" Filters use a short-lived structure to keep state during an operation to allow for caching and avoid unnecessary reallocations. This was previously called the "filter options", despite the fact that they contain no configurable options. Rename them to a "filter session" in keeping with an "attribute session", which more accurately describes their use (and allows us to create "filter options" in the future).
Edward Thomson 3779a047 2021-05-27T18:47:22 attr: introduce `git_attr_options` for extended queries Allow more advanced attribute queries using a `git_attr_options`, and extended functions to use it. Presently there is no additional configuration in a `git_attr_options` beyond the flags, but this is for future growth.
Edward Thomson 1cd863fd 2021-05-24T13:44:45 attr: include the filename in the attr source The attribute source object is now the type and the path.
Edward Thomson 96dc1ffd 2021-05-22T20:14:47 attr: the attr source is now a struct We may want to extend the attribute source; use a structure instead of an enum.
Edward Thomson 5ee50488 2021-05-22T18:47:03 attr: rename internal attr file source enum The enum `git_attr_file_source` is better suffixed with a `_t` since it's a type-of source. Similarly, its members should have a matching name.
Edward Thomson b0980dcf 2021-07-20T08:25:59 Update src/allocators/stdalloc.c Co-authored-by: lhchavez <lhchavez@lhchavez.com>
Calvin Buckley 688bf4ce 2021-07-19T19:25:58 Remove macro magic
Edward Thomson 31e84edb 2021-07-19T16:02:30 merge: don't try to malloc(0)
Edward Thomson 419ffdde 2021-07-19T15:51:53 packbuilder: don't try to malloc(0)
Edward Thomson 48e6b02b 2021-07-19T15:41:44 alloc: add GIT_DEBUG_STRICT_ALLOC Add `GIT_DEBUG_STRICT_ALLOC` to help identify problematic callers of allocation code that pass a `0` size to the allocators and then expect a non-`NULL` return. When given a 0-size allocation, `malloc` _may_ return either a `NULL` _or_ a pointer that is not writeable. Most systems return a non-`NULL` pointer; AIX is an outlier. We should be able to cope with this AIXy behavior, so this adds an option to emulate it.
Calvin Buckley 950a7f76 2021-07-17T16:21:05 Variadic arguments aren't in C89 This refactors this to a wrapper function, as well as changing the existing API have a va_list and ... version.
Edward Thomson 6a7f0403 2021-07-16T08:47:37 Merge pull request #5941 from NattyNarwhal/stdintification stdintification: use int64_t and INT64_C instead of long long