Log

Author Commit Date CI Message
Colin Stolley 516f7519 2021-09-09T15:08:36 Add test for revert+rename bug.
Colin Stolley 479a38bf 2021-09-09T15:21:48 merge: Check file mode when resolving renames. When determining if ours or theirs changed, we check the oids but not their respective file modes. This can lead to merges introducing incorrect file mode changes (eg., in a revert). A simple linear example might be: commit A - introduces file `foo` with chmod 0755 commit B - updates some unrelated file commit C - renames `foo` to `bar` and chmod 0644 If B is reverted, `bar` will unexpectedly acquire mode 0755.
Edward Thomson 7d195b9c 2021-09-14T09:53:15 Merge pull request #6053 from stac47/ssh2_discovery Discover libssh2 without pkg-config
Laurent Stacul 413bfb83 2021-09-14T13:53:29 Update src/CMakeLists.txt Co-authored-by: Edward Thomson <ethomson@github.com>
Edward Thomson 646bae34 2021-09-14T07:47:19 Merge pull request #6041 from Esri/duncan/typeof Use __typeof__ GNUC keyword for ISO C compatibility
Edward Thomson b6735461 2021-09-14T07:46:49 Merge pull request #6039 from lhchavez/avoid-mmap-in-git-indexer-append indexer: Avoid one `mmap(2)`/`munmap(2)` pair per `git_indexer_append` call
Edward Thomson 4f24a932 2021-09-14T07:45:50 Merge pull request #6031 from libgit2/ethomson/extensions Support custom git extensions
Edward Thomson 5bd49aee 2021-09-14T07:44:37 Merge pull request #6045 from punkymaniac/qa-fix-coding-style-pointer Fix coding style for pointer
Edward Thomson 1f6263b8 2021-09-14T07:43:35 Merge pull request #6043 from basile-henry/config-multiline-comment-chars Fix config parsing for multiline with multiple quoted comment chars
Edward Thomson baf001ed 2021-09-14T07:42:25 Merge pull request #6047 from libgit2/ethomson/notes_cleanup notes: use a buffer internally
Laurent Stacul 0a3a220f 2021-09-14T09:53:24 Discover libssh2 without pkg-config
Edward Thomson cd0fd0f5 2021-09-10T07:19:06 notes: use a buffer internally Code cleanup to use `git_buf`s instead of simple c strings.
Basile Henry 574c590f 2021-09-09T21:53:45 Fix multiline strip_comments logic The strip_comments function uses the count of quotes to know if a comment char (';' or '#') is the start of a comment or part of the multiline as a string. Unfortunately converting the count of quotes from previous lines to a boolean meant that it would only work as expected in some cases (0 quotes or an odd number of quotes).
Basile Henry 5eab4daf 2021-09-09T21:51:52 Add test config parsing This tests parsing a multiline string containing multiple quoted comment chars. See #6019
punkymaniac 379c4646 2021-09-09T19:49:04 Fix coding style for pointer Make some syntax change to follow coding style.
Duncan Thomson 6c53d6ab 2021-09-08T18:42:42 Use __typeof__ GNUC keyword for ISO C compatibility
lhchavez c65eb24c 2021-09-08T08:47:39 Avoid double negatives in the justification for truncation Turns out, double negatives are harder to parse than positive statements.
lhchavez 6571ba7b 2021-09-08T06:29:58 Only avoid `mmap(2)`/`ftruncate(2)` when in non-Windows It turns out that if we use `mmap(2)`, non-Windows remote filesystems break due to permissions. If we don't, _Windows_ remote filesystems break due to lack of coherence between memory mapped views of the file and direct I/O operations done to the files. To break out of this impossible situation, conditionally-compile versions of Windows-specific `write_at` and `append_to_pack`.
lhchavez eeceaac0 2021-09-07T08:38:35 Also remove a `ftruncate(2)` call in `git_indexer_commit` Now that we're not using `mmap(2)` for writing stuff, we don't need to truncate the file afterwards, since it'll have the correct size at the end of the process. Whee~!
lhchavez 66a75fde 2021-09-07T07:14:39 indexer: Avoid one `mmap(2)`/`munmap(2)` pair per `git_indexer_append` call This change makes `append_to_pack` completely rely on `p_pwrite` to do all its I/O instead of splitting it between `p_pwrite` and a `mmap(2)`/`munmap(2)`+`memcpy(3)`. This saves a good chunk of user CPU time and avoids making two syscalls per round, but doesn't really cut down a lot of wall time (~1% on cloning the [git](https://github.com/git/git.git) repository).
Edward Thomson f1b89a20 2021-09-05T09:55:59 README: update build badges for our branches
Edward Thomson 109b4c88 2021-09-04T21:05:46 Merge pull request #6032 from lhchavez/git-extern-git-remote-name-is-valid
lhchavez 62ee779e 2021-09-04T18:01:10 remote: Mark `git_remote_name_is_valid` as `GIT_EXTERN` 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).
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