Log

Author Commit Date CI Message
Edward Thomson a24e656a 2021-09-04T10:16:41 common: support custom repository extensions 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.
Edward Thomson 2f3074da 2021-09-03T17:03:00 repo: refactor extensions tests into their own file
Edward Thomson a88fdda6 2021-09-02T22:36:46 Merge pull request #6029 from arroz/fix_6028 #6028: Check if `threadstate->error_t.message` is not `git_buf__initbuf` before freeing.
Miguel Arroz 27f50a66 2021-09-02T18:59:19 #6028: Check if `threadstate->error_t.message` is not `git_buf__initbuf` before freeing. This follows the same principle as `buffer.c` where the same check is done before freeing the buffer. It fixes the crash described in #6028.
Edward Thomson 4fd32be0 2021-09-01T23:06:19 url: ensure minimum components for formatting
Edward Thomson fd50810a 2021-09-01T22:49:14 url: ensure minimum components for formatting
Edward Thomson 002b2ffe 2021-09-01T21:57:16 Merge pull request #6026 from libgit2/ethomson/proxy Update proxy configuration
Edward Thomson 3c0f14cc 2021-09-01T20:34:28 remote: refactor proxy detection Update the proxy detection for a remote. 1. Honor `http.<url>.proxy` syntax for a remote's direct URL and parent URLs. 2. Honor an empty configuration URL to override a proxy configuration. Add tests to ensure that configuration specificity is honored.
Edward Thomson f89dc917 2021-09-01T20:30:59 url: introduce `git_net_url_dup`
Edward Thomson 9e98e443 2021-08-31T22:01:34 url: introduce `git_net_url_matches_pattern_list` Provide a utility method on a url to determine if it matches any pattern in a comma-separated list, similar to what one would find in `NO_PROXY` environment variables.
Edward Thomson e5ba0a3c 2021-08-31T20:41:45 url: introduce `git_net_url_matches_pattern` Provide a method to determine if a given URL matches a host:port pattern like the ones found in `NO_PROXY` environment variables.
Edward Thomson 3680f0bf 2021-08-31T09:41:14 tests: create the network::url test hierarcy
Edward Thomson 1196de4f 2021-08-31T15:22:44 util: introduce `git__strlcmp` Introduce a utility function that compares a NUL terminated string to a possibly not-NUL terminated string with length. This is similar to `strncmp` but with an added check to ensure that the lengths match (not just the `size` portion of the two strings).
Mathieu Parent e5a32774 2021-02-11T22:53:16 Add NO_PROXY env support Item 2 of 3 from #4164 Signed-off-by: Mathieu Parent <math.parent@gmail.com>
Edward Thomson d56b4079 2021-08-31T09:21:22 Merge pull request #6024 from lhchavez/fix-possible-null-pointer-dereference Fix a possible null pointer dereference
lhchavez 1e49f127 2021-08-31T05:23:20 Fix a possible null pointer dereference This change fixes a possible null pointer dereference if anything inside `git_commit_graph_writer_add_index_file` fails before the packfile being valid. https://scan6.coverity.com/reports.htm#v52218/p10377/fileInstanceId=122935896&defectInstanceId=32525576&mergedDefectId=1461634
Edward Thomson c811fc36 2021-08-31T00:13:42 v1.2: update version information
Edward Thomson 0e585d36 2021-08-31T00:11:56 v1.2: changelog
Edward Thomson 3addb796 2021-08-30T23:10:24 Merge pull request #5943 from kcsaul/fix/5851 Fix worktree iteration when repository has no common directory
Edward Thomson 4e8840fd 2021-08-30T18:20:35 Merge pull request #6022 from lollipopman/connect-proxy-host-header Set Host Header to match CONNECT authority target
Edward Thomson 98be5a11 2021-08-30T17:55:47 Merge branch 'cgraph-write' into main
Edward Thomson 34fa6311 2021-08-30T17:55:13 commit graph: formatting fixes
Jesse Hathaway fc5d0e80 2021-08-30T21:24:54 Set Host Header to match CONNECT authority target Prior to this change, for CONNECT requests, the Host header was set to the host and port of the target http proxy. However, per the rfc7230 for HTTP/1.1 this is incorrect as the Host header should match the target of the CONNECT request, as detailed in section 5.3.3 & 5.4. 5.3.3. authority-form The authority-form of request-target is only used for CONNECT requests (Section 4.3.6 of [RFC7231]). authority-form = authority When making a CONNECT request to establish a tunnel through one or more proxies, a client MUST send only the target URI's authority component (excluding any userinfo and its "@" delimiter) as the request-target. For example, CONNECT www.example.com:80 HTTP/1.1 5.4. Host <snip> A client MUST send a Host header field in all HTTP/1.1 request messages. If the target URI includes an authority component, then a client MUST send a field-value for Host that is identical to that authority component, excluding any userinfo subcomponent and its "@" delimiter (Section 2.7.1). If the authority component is missing or undefined for the target URI, then a client MUST send a Host header field with an empty field-value. This issue was noticed when proxying requests through HAProxy 2.2 which rejects these invalid http requests.
Edward Thomson db729803 2021-08-30T09:24:48 Merge pull request #6018 from libgit2/ethomson/fixups Fixes from code analysis
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 036be150 2021-08-30T08:47:04 hashsig: close fd on error
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 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 0e047268 2021-08-25T18:01:34 opts: test GIT_OPT_SET_SSL_CERT_LOCATIONS Include a self-signed certificate for test.libgit2.org:1443 that we can use to verify that GIT_OPT_SET_SSL_CERT_LOCATIONS works.
lhchavez 7d9ebdc8 2021-08-29T18:50:49 Merge remote-tracking branch 'origin/main' into cgraph-write
Edward Thomson 2998a84a 2021-08-29T21:49:33 Merge pull request #5841 from J0Nes90/features/checkout-dry-run Checkout dry-run
Edward Thomson aebdee8e 2021-08-29T21:49:26 Update include/git2/checkout.h
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 a5d6a576 2021-08-29T13:21:40 ci: stop on test failure
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 0a79012e 2021-08-29T06:36:59 Merge pull request #6015 from boretrk/c89-comments
Peter Pettersson d17e67e6 2021-08-29T12:19:49 tests: change comments to c89 style
Edward Thomson ffb0763b 2021-08-28T13:47:23 Merge pull request #5508 from libgit2/ethomson/devcontainer WIP: .devcontainer: settings for a codespace workflow
Edward Thomson af97166f 2021-08-28T13:45:33 Merge pull request #6013 from lolgear/cmake_hash_sha_missing_header CMake. hash sha1 header has been added.
Dmitry Lobanov 4c0ea9f0 2021-08-28T20:18:38 cmake: select hashes umbrella variable has been removed. Co-authored-by: Edward Thomson <ethomson@github.com>
Dmitry Lobanov 08b3ee2f 2021-08-07T15:56:29 cmake: select hashes missing umbrella header has been added.
Edward Thomson c089d5ac 2021-08-27T16:51:38 filter: use streaming filters in tests
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 a9a7bfb5 2021-05-12T22:13:12 filter: add docs for `git_filter_stream_fn`
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
Edward Thomson 3f8bf8be 2021-08-26T17:29:37 Merge pull request #6010 from A-Ovchinnikov-mx/a-ovchin/remote-head-branch-clone Set refs/remotes/origin/HEAD to default branch when branch is specified
lhchavez 94008e6a 2021-08-26T05:50:23 Fixups for the latest changes in the array interface
lhchavez 47c70fc5 2021-08-26T05:40:20 Merge remote-tracking branch 'origin/main' into cgraph-write
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.
lhchavez 63f08e42 2021-08-26T05:29:34 Make the defaultable fields defaultable Also, add `git_commit_graph_writer_options_init`!
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 b0189582 2021-08-25T18:07:01 enable gcc warnings for C11 specific extensions
Edward Thomson cc4f8bc6 2021-08-25T09:11:25 Merge pull request #6005 from boretrk/c11-warnings C11 warnings
Peter Pettersson 40f3702c 2021-08-25T11:36:06 c90/c99: name the unnamed union in git_hash_ctx
Peter Pettersson 51d69dda 2021-08-25T11:34:59 enable warnings for C11 specific extensions
Edward Thomson c8f4b569 2021-08-24T18:28:28 Merge pull request #5974 from libgit2/ethomson/dlopen_ssl Dynamically load OpenSSL (optionally)
Edward Thomson 314469f9 2021-08-24T16:23:09 ci: run dynamically loaded openssl workflows nightly Add Xenial, Bionic, CentOS 7 and 8 workflows with OpenSSL-Dynamic builds nightly.
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 e265eb2f 2021-08-24T13:58:24 tests: show errors when libgit2_init fails
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 c9b80c25 2021-08-21T15:28:45 valgrind: suppress leaks in dlopen and newer libraries dlopen sets up some thread-local state that isn't cleaned up by `dlclose`. Additionally, now that we're linking against different versions of libssh2 and OpenSSL, we're seeing different leak signatures.
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.