Log

Author Commit Date CI Message
lhchavez 25b75cd9 2021-03-10T07:06:15 commit-graph: Create `git_commit_graph` as an abstraction for the file 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.
lhchavez 248606eb 2021-01-05T17:20:27 commit-graph: Use the commit-graph in revwalks This change makes revwalks a bit faster by using the `commit-graph` file (if present). This is thanks to the `commit-graph` allow much faster parsing of the commit information by requiring near-zero I/O (aside from reading a few dozen bytes off of a `mmap(2)`-ed file) for each commit, instead of having to read the ODB, inflate the commit, and parse it. This is done by modifying `git_commit_list_parse()` and letting it use the ODB-owned commit-graph file. Part of: #5757
Edward Thomson 4f4b1139 2021-03-10T11:21:39 Merge pull request #5815 from libgit2/ethomson/treebuilder_write tree: deprecate `git_treebuilder_write_with_buffer`
Edward Thomson a0fca809 2021-03-10T11:19:14 Merge pull request #5814 from ianhattendorf/fix/winhttp-proxy-https winhttp: skip certificate check if unable to send request
Edward Thomson 752dbecf 2021-03-04T09:45:12 README: it's actually our main branch [skip ci]
Edward Thomson d7e65096 2021-03-04T09:44:26 Merge pull request #5764 from lhchavez/cgraph-needs-refresh commit-graph: Introduce `git_commit_graph_needs_refresh()`
Edward Thomson b99b5a81 2021-03-04T09:38:10 Merge pull request #5763 from lhchavez/cgraph-lookup commit-graph: Support lookups of entries in a commit-graph
Edward Thomson 85af7f21 2021-03-04T09:15:37 ci: enable UBSan stacktraces
Edward Thomson 7eb21516 2021-02-28T00:20:28 tree: deprecate `git_treebuilder_write_with_buffer` The function `git_treebuilder_write_with_buffer` is unnecessary; it is used internally as part of treebuilder writing, but it has little use to external callers. For callers that repeatedly write a treebuilder, we can supply them with a buffer in the treebuilder struct instead of recreating it. For ourselves, when we want a single buffer in our write loop, we can use an internal function.
Edward Thomson b33e018c 2021-03-04T09:20:34 Merge pull request #5818 from mamapanda/patch-3 merge: Check insert_head_ids error in create_virtual_base
Edward Thomson 80bdeca4 2021-03-04T09:18:30 Merge pull request #5817 from mamapanda/patch-2 Check git_signature_dup failure
panda dc1095a5 2021-03-03T14:42:12 merge: Check insert_head_ids error in create_virtual_base insert_head_ids can fail due to allocation error
panda b9bfe812 2021-03-03T14:03:06 Check git_signature_dup failure git_signature_dup can have an allocation failure
Ian Hattendorf edffea15 2021-03-01T16:26:58 winhttp: skip certificate check if unable to send request In some circumstances (e.g. when proxies are involved), winhttp will fail to reach the WINHTTP_CALLBACK_STATUS_SENDING_REQUEST phase. If this occurs, we'll error with ERROR_WINHTTP_INCORRECT_HANDLE_STATE when attempting to query the server certificate context (see https://docs.microsoft.com/en-us/windows/win32/api/winhttp/nf-winhttp-winhttpsendrequest#remarks). To avoid this, verify that WinHttpSendRequest has reached the WINHTTP_CALLBACK_STATUS_SENDING_REQUEST phase before checking the certificate. Since we're using WinHTTP in synchronous mode, we know for sure that once WinHttpSendRequest returns we've either sent it successfully or not. NOTE: WINHTTP_CALLBACK_STATUS_SENDING_REQUEST appears to be deprecated with no direct replacement. WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE is only available in async mode, and there doesn't appear to be a method of querying this flag outside of the status callback.
Ian Hattendorf 592a3252 2021-03-01T11:00:37 winhttp: test proxy https clone
Edward Thomson 1bc8dec4 2021-02-28T11:02:23 Merge pull request #5797 from aaronfranke/typos Fix some typos
Edward Thomson 922d73c6 2021-02-28T10:59:10 Merge pull request #5805 from tniessen/include-typos include: fix typos in comments
Edward Thomson dcecc0b5 2021-02-28T10:58:34 Merge pull request #5806 from punkymaniac/comment-format Fix documentation formating on repository.h
Tobias Nießen 25efbc4b 2021-02-22T22:57:16 include: fix typos in comments
punkymaniac 3bb5f297 2021-02-22T14:58:46 Fix documentation formating on repository.h The enum 'git_repository_init_flag_t', 'git_repository_init_mode_t' and the structure 'git_repository_init_options' does not follow the format used by docurium.
Edward Thomson 0fb58396 2021-02-21T20:43:51 Merge pull request #5801 from mamapanda/patch-1 index: Check git_vector_dup error in write_entries
panda 40930508 2021-02-18T16:36:42 index: Initialize case_sorted to GIT_VECTOR_INIT This is for extra safety within write_entries
Edward Thomson 6e57010b 2021-02-18T04:57:25 Merge pull request #5800 from mamapanda/check-sortedcache-lock
panda 21981f28 2021-02-16T13:43:09 index: Check git_vector_dup error in write_entries If allocating case_sorted.contents fails, git_vector_sort will segfault.
panda 36232528 2021-02-16T13:08:02 refdb_fs: Check git_sortedcache wlock/rlock errors To prevent a race condition, these wlock/rlock calls should probably be checked for errors.
Aaron Franke 7efddeb7 2021-02-15T15:47:28 Fix some typos
Edward Thomson 935f8513 2021-02-15T16:03:23 CI: add workflow_dispatch event to the main build Invert the workflow conditionals so that a workflow_dispatch event acts like an on: push build.
Edward Thomson a4218a07 2021-02-11T17:58:04 Merge pull request #5795 from jeroen/patch-1 Add new bindings for the R language
Jeroen Ooms 82a091c4 2021-02-11T15:19:09 Add new bindings for the R language
Edward Thomson 523d5e0f 2021-02-01T11:50:44 Merge pull request #5787 from lrm29/patch-1 Update .gitignore
Edward Thomson 02eb1711 2021-02-01T10:07:00 Merge pull request #5731 from KOLANICH-libs/owner_accessor patch: add owner accessor
Edward Thomson 2ad15250 2021-02-01T09:58:25 Merge pull request #5762 from lhchavez/cgraph-parser commit-graph: Introduce a parser for commit-graph files
Edward Thomson 0a710091 2021-02-01T09:41:42 Merge pull request #5786 from libgit2/ethomson/revparse revspec: rename git_revparse_mode_t to git_revspec_t
Edward Thomson 41ccbc04 2021-02-01T09:41:16 Merge pull request #5783 from lhchavez/mwindow-coverity mwindow: Fix a bug in the LRU window finding code
Edward Thomson 4732e030 2021-01-31T00:36:54 revspec: rename git_revparse_mode_t to git_revspec_t The information about the type of a revision spec is not information about the parser. Name it accordingly, so that `git_revparse_mode_t` is now `git_revspec_t`. Deprecate the old name.
Laurence McGlashan e4489077 2021-01-31T15:35:56 Update .gitignore Only exclude tags files/folders and build folders at the repository root.
Edward Thomson 50f53622 2021-01-22T11:22:53 meta: tell "linguist" that the test resources are vendored Our test resources shouldn't count toward our language statistics. We have some PHP checked in to the test resources, but I assure you that we do not have any production code in PHP and we shouldn't be blamed for the test data.
lhchavez 2f382ab7 2021-01-20T04:40:40 mwindow: Fix a bug in the LRU window finding code This change now updates the `lru_window` variable to match the current file's MRU window. This makes it such that it doesn't always choose the file that happened to come last in the list of window files, and instead should now correctly choose the file with the least-recently-used one.
Edward Thomson 3392da3c 2021-01-15T12:52:32 Merge pull request #5780 from libgit2/ethomson/ci ci: don't use ninja on macOS
Edward Thomson 75888f27 2021-01-15T10:29:05 ci: don't use ninja on macOS Ninja is not installed by default on the macOS machines; stop trying to use it. Instead use `make -j` which should be roughly equivalent in performance but supported everywhere.
Edward Thomson 674875dc 2021-01-15T09:59:15 Merge pull request #5768 from lhchavez/midx-needs-refresh midx: Fix a bug in `git_midx_needs_refresh()`
Edward Thomson 487f2a82 2021-01-10T21:32:28 Merge pull request #5775 from libgit2/ethomson/clone_branch clone: set refs/remotes/origin/HEAD when branch is specified
lhchavez 1a2f9609 2021-01-05T06:24:26 commit-graph: Introduce `git_commit_graph_needs_refresh()` This change introduces a function that allows the caller to know whether the `commit-graph` file has not been modified since it was parsed. Part of: #5757
lhchavez 1f32ed25 2021-01-04T19:33:48 commit-graph: Support lookups of entries in a commit-graph This change introduces `git_commit_graph_entry_find()` and `git_commit_graph_entry_parent()`. These two functions allow a much faster lookup of commits by ID, since the ODB does not need to be consulted, the commit object does not need to be inflated, and the contents of the commit object do not need to be parsed. Part of: #5757
lhchavez 3fd57a75 2021-01-04T18:22:43 commit-graph: Introduce a parser for commit-graph files This change is the first in a series to add support for git's commit-graph. This should speed up commit graph traversals by avoiding object parsing and allowing some operations to terminate earlier. Part of: #5757
Edward Thomson 923c0f7b 2021-01-07T17:34:17 clone: set refs/remotes/origin/HEAD when branch is specified When a branch is specified to check out in clone, update the remote tracking `HEAD` to point to it. This mimics git's behavior, when `git clone -b <name>` is used.
Edward Thomson c6cf7f0e 2021-01-07T17:00:57 Merge pull request #5769 from lhchavez/pwrite-pread Use `p_pwrite`/`p_pread` consistently throughout the codebase
Edward Thomson 81c98af7 2021-01-07T15:40:06 Merge pull request #5772 from libgit2/ethomson/readme README: instructions for using libgit2 without compiling
Edward Thomson 8462f7f9 2021-01-07T15:39:45 Merge pull request #5770 from libgit2/ethomson/empty_default_branch Cope with empty default branch
Edward Thomson 4ac12634 2021-01-07T15:08:37 README: instructions for using libgit2 without compiling
lhchavez ff6f6754 2021-01-07T05:44:16 Use `p_pwrite`/`p_pread` consistently throughout the codebase This change stops using the seek+read/write combo to perform I/O with an offset, since this is faster by one system call (and also more atomic and therefore safer).
lhchavez d50d3db6 2021-01-07T05:43:30 midx: Fix a bug in `git_midx_needs_refresh()` The very last check in the freshness check for the midx was wrong >< This was also because this function was not tested.
Edward Thomson ba6824db 2021-01-07T14:28:10 Merge pull request #5771 from lhchavez/fix-ci github-actions: Also rename the main branch here
lhchavez 1ddffb05 2021-01-07T06:11:01 github-actions: Also rename the main branch here This should fix the CI.
Edward Thomson 3f4bc213 2021-01-07T14:05:02 repo: ignore empty init.defaultbranch The init.defaultbranch option may be set, but empty. In this case, we should ignore it instead of trying to set our default branch to `refs/heads/`.
Edward Thomson 32350e89 2021-01-07T14:01:30 remote: don't update invalid refs If a symbolic reference points to something invalid, then do not try to update it.
Edward Thomson c41871e5 2021-01-07T12:22:08 fetch: test when HEAD points to nonexistent branch When HEAD points to a nonexistent or invalid branch - for example, to `refs/heads/` - the fetch should be permitted to continue, but we should not use it when creating the `for merge` option in the FETCH_HEAD file. (This emulates git's behavior.)
Edward Thomson c31032a3 2021-01-07T10:15:25 Merge pull request #5760 from libgit2/ethomson/tttoo_many_ttts blob: fix name of `GIT_BLOB_FILTER_ATTRIBUTES_FROM_HEAD`
Edward Thomson 27e34f9b 2021-01-06T11:49:00 Merge pull request #5759 from JoshuaS3/master Add documentation for git_blob_filter_options.version
Josh Stockin ddafbafe 2021-01-05T17:26:50 Update documentation for git_blob_filter_options Adds info about initializing options with git_blob_filter_options_init
Edward Thomson 855f2998 2021-01-05T14:45:14 blob: fix name of `GIT_BLOB_FILTER_ATTRIBUTES_FROM_HEAD` `GIT_BLOB_FILTER_ATTTRIBUTES_FROM_HEAD` is misspelled, it should be `GIT_BLOB_FILTER_ATTRIBUTES_FROM_HEAD`, and it would be if it were not for the MacBook Pro keyboard and my inattentiveness.
Edward Thomson d9c15387 2021-01-05T14:29:58 blob: add git_blob_filter_options_init The `git_blob_filter_options_init` function should be included, to allow callers in FFI environments to let us initialize an options structure for them.
Edward Thomson f0d7922c 2021-01-05T12:12:19 Merge pull request #5583 from 0xdky/dhruva/build-with-nommap Build with NO_MMAP
Edward Thomson fa017860 2021-01-05T12:06:52 Merge pull request #5748 from lhchavez/chromium-zlib zlib: Add support for building with Chromium's zlib implementation
Josh Stockin f1151fb3 2021-01-04T16:29:10 Fix documentation for git_blob_filter_options
Josh Stockin 556e0747 2021-01-04T10:56:01 Move doc comment about `GIT_BLOB_FILTER_OPTIONS_VERSION` Removes doc comment on `git_blob_filter_options.version`, moves information to `git_blob_filter_options` doc comment to remain consistent with other options structures' documentation. `git_blob_filter_options_init` still needed; should be added in another commit/PR (it's out of the scope of this PR, #5759), update this documentation again.
lhchavez 754fa526 2021-01-04T06:10:10 Use an option instead of a flag for USE_BUNDLED_ZLIB Now `USE_BUNDLED_ZLIB` can be set to the string `Chromium` to enable the Chromium implementation of zlib.
Josh Stockin 0af0f7fd 2021-01-03T20:39:45 Add documentation for git_blob_filter_options.version Resolves #5756
Dhruva Krishnamurthy 4fafe9f6 2020-11-22T13:23:46 Add github action to build and test with mmap emulation
Dhruva Krishnamurthy 4ce8e01a 2020-06-17T14:31:11 Support build with NO_MMAP to disable use of system mmap * Use pread/pwrite to avoid updating position in file descriptor * Emulate missing pread/pwrite on win32 using overlapped file IO
Dhruva Krishnamurthy a9f57a89 2020-11-23T10:14:00 Remove broken support for write in emulated mmap * Emulated mmap based write without pagefault handling is not possible since IO happens outside of call to mmap and data is written to mapped memory * Potential emulation using userfaultfd() might be possible
lhchavez 83265b3e 2020-12-18T06:50:22 zlib: Add support for building with Chromium's zlib implementation This change builds libgit2 using Chromium's zlib implementation by invoking cmake with `-DUSE_BUNDLED_ZLIB=ON -DUSE_CHROMIUM_ZLIB=ON`, which is ~10% faster than the bundled zlib for the core::zstream suite. This version of zlib has some optimizations: a) Decompression (Intel+ARM): inflate_fast, adler32, crc32, etc. b) Compression (Intel): fill_window, longest_match, hash function, etc. Due to the introduction of SIMD optimizations, and to get the maximum performance out of this fork of zlib, this requires an x86_64 processor with SSE4.2 and CLMUL (anything Westmere or later, ~2010). The Chromium zlib implementation also supports ARM with NEON, but it has not been enabled in this patch. Performance =========== TL;DR: Running just `./libgit2_clar -score::zstream` 100 times in a loop took 0:56.30 before and 0:50.67 after (~10% reduction!). The bundled and system zlib implementations on an Ubuntu Focal system perform relatively similar (the bundled one is marginally better due to the compiler being able to inline some functions), so only the bundled and Chromium zlibs were compared. For a more balanced comparison (to ensure that nothing regressed overall), `libgit2_clar` under `perf` was also run, and the zlib-related functions were compared. Bundled ------- ```shell cmake \ -DUSE_BUNDLED_ZLIB=ON \ -DUSE_CHROMIUM_ZLIB=OFF \ -DCMAKE_BUILD_TYPE="RelWithDebInfo" \ -DCMAKE_C_FLAGS="-fPIC -fno-omit-frame-pointer" \ -GNinja \ .. ninja perf record --call-graph=dwarf ./libgit2_clar perf report --children ``` ``` Samples: 87K of event 'cycles', Event count (approx.): 75923450603 Children Self Command Shared Objec Symbol + 4.14% 0.01% libgit2_clar libgit2_clar [.] git_zstream_get_output_chunk + 2.91% 0.00% libgit2_clar libgit2_clar [.] git_zstream_get_output + 0.69% 0.00% libgit2_clar libgit2_clar [.] git_zstream_get_output (inlined) 0.17% 0.00% libgit2_clar libgit2_clar [.] git_zstream_init 0.02% 0.00% libgit2_clar libgit2_clar [.] git_zstream_reset 0.00% 0.00% libgit2_clar libgit2_clar [.] git_zstream_eos 0.00% 0.00% libgit2_clar libgit2_clar [.] git_zstream_done 0.00% 0.00% libgit2_clar libgit2_clar [.] git_zstream_free (inlined) Samples: 87K of event 'cycles', Event count (approx.): 75923450603 Children Self Command Shared Objec Symbol + 3.12% 0.01% libgit2_clar libgit2_clar [.] deflate + 2.65% 1.48% libgit2_clar libgit2_clar [.] deflate_slow + 1.60% 0.55% libgit2_clar libgit2_clar [.] inflate + 0.53% 0.00% libgit2_clar libgit2_clar [.] write_deflate 0.49% 0.36% libgit2_clar libgit2_clar [.] inflate_fast 0.46% 0.02% libgit2_clar libgit2_clar [.] deflate_fast 0.19% 0.19% libgit2_clar libgit2_clar [.] inflate_table 0.16% 0.01% libgit2_clar libgit2_clar [.] inflateInit_ 0.15% 0.00% libgit2_clar libgit2_clar [.] inflateInit2_ (inlined) 0.10% 0.00% libgit2_clar libgit2_clar [.] deflateInit_ 0.10% 0.00% libgit2_clar libgit2_clar [.] deflateInit2_ 0.03% 0.00% libgit2_clar libgit2_clar [.] deflateReset (inlined) 0.02% 0.00% libgit2_clar libgit2_clar [.] deflateReset 0.02% 0.00% libgit2_clar libgit2_clar [.] inflateEnd 0.02% 0.00% libgit2_clar libgit2_clar [.] deflateEnd 0.01% 0.00% libgit2_clar libgit2_clar [.] deflateResetKeep 0.01% 0.01% libgit2_clar libgit2_clar [.] inflateReset2 0.01% 0.00% libgit2_clar libgit2_clar [.] deflateReset (inlined) 0.00% 0.00% libgit2_clar libgit2_clar [.] inflateStateCheck (inlined) 0.00% 0.00% libgit2_clar libgit2_clar [.] inflateReset (inlined) 0.00% 0.00% libgit2_clar libgit2_clar [.] inflateStateCheck (inlined) 0.00% 0.00% libgit2_clar libgit2_clar [.] deflateStateCheck (inlined) 0.00% 0.00% libgit2_clar libgit2_clar [.] inflateResetKeep (inlined) ``` Chromium -------- ```shell cmake \ -DUSE_BUNDLED_ZLIB=ON \ -DUSE_CHROMIUM_ZLIB=ON \ -DCMAKE_BUILD_TYPE="RelWithDebInfo" \ -DCMAKE_C_FLAGS="-fPIC -fno-omit-frame-pointer" \ -GNinja \ .. ninja perf record --call-graph=dwarf ./libgit2_clar perf report --children ``` ``` Samples: 97K of event 'cycles', Event count (approx.): 80862210917 Children Self Command Shared Objec Symbol + 3.31% 0.00% libgit2_clar libgit2_clar [.] git_zstream_get_output_chunk + 2.27% 0.01% libgit2_clar libgit2_clar [.] git_zstream_get_output + 0.55% 0.00% libgit2_clar libgit2_clar [.] git_zstream_get_output (inlined) 0.18% 0.00% libgit2_clar libgit2_clar [.] git_zstream_init 0.02% 0.00% libgit2_clar libgit2_clar [.] git_zstream_reset 0.00% 0.00% libgit2_clar libgit2_clar [.] git_zstream_free (inlined) 0.00% 0.00% libgit2_clar libgit2_clar [.] git_zstream_done 0.00% 0.00% libgit2_clar libgit2_clar [.] git_zstream_free Samples: 97K of event 'cycles', Event count (approx.): 80862210917 Children Self Command Shared Objec Symbol + 2.55% 0.01% libgit2_clar libgit2_clar [.] deflate + 2.25% 1.41% libgit2_clar libgit2_clar [.] deflate_slow + 1.10% 0.52% libgit2_clar libgit2_clar [.] inflate 0.36% 0.00% libgit2_clar libgit2_clar [.] write_deflate 0.30% 0.03% libgit2_clar libgit2_clar [.] deflate_fast 0.28% 0.15% libgit2_clar libgit2_clar [.] inflate_fast_chunk_ 0.19% 0.19% libgit2_clar libgit2_clar [.] inflate_table 0.17% 0.01% libgit2_clar libgit2_clar [.] inflateInit_ 0.16% 0.00% libgit2_clar libgit2_clar [.] inflateInit2_ (inlined) 0.15% 0.00% libgit2_clar libgit2_clar [.] deflateInit_ 0.15% 0.00% libgit2_clar libgit2_clar [.] deflateInit2_ 0.11% 0.01% libgit2_clar libgit2_clar [.] adler32_z 0.09% 0.09% libgit2_clar libgit2_clar [.] adler32_simd_ 0.05% 0.00% libgit2_clar libgit2_clar [.] deflateReset (inlined) 0.05% 0.00% libgit2_clar libgit2_clar [.] deflate_read_buf 0.03% 0.00% libgit2_clar libgit2_clar [.] inflateEnd 0.02% 0.00% libgit2_clar libgit2_clar [.] deflateReset 0.01% 0.00% libgit2_clar libgit2_clar [.] deflateEnd 0.01% 0.01% libgit2_clar libgit2_clar [.] inflateReset2 0.01% 0.00% libgit2_clar libgit2_clar [.] inflateReset (inlined) 0.00% 0.00% libgit2_clar libgit2_clar [.] adler32 0.00% 0.00% libgit2_clar libgit2_clar [.] inflateResetKeep (inlined) 0.00% 0.00% libgit2_clar libgit2_clar [.] deflateResetKeep 0.00% 0.00% libgit2_clar libgit2_clar [.] inflateStateCheck (inlined) 0.00% 0.00% libgit2_clar libgit2_clar [.] inflateStateCheck (inlined) 0.00% 0.00% libgit2_clar libgit2_clar [.] inflateStateCheck (inlined) 0.00% 0.00% libgit2_clar libgit2_clar [.] deflateStateCheck (inlined) ```
Edward Thomson fe41e582 2020-12-23T12:32:58 Merge pull request #5741 from libgit2/ethomson/ipv6 Handle ipv6 addresses
Edward Thomson 1c3f29a9 2020-12-23T12:20:02 Merge pull request #5750 from arroz/missing_hostkey_types Add support for additional SSH hostkey types.
Edward Thomson 27301cd0 2020-12-17T20:53:11 net: function to identify ipv6 addresses in URLs
Edward Thomson 953dee20 2020-12-17T20:51:37 net: is_default_port is a bool
Edward Thomson b7ffc63b 2020-12-17T18:38:01 winhttp: handle ipv6 addresses
Edward Thomson 2807de5c 2020-12-17T15:18:31 http: handle ipv6 addresses
Edward Thomson 780ad7a9 2020-12-17T14:09:45 urlparse: use consistent ipv6 address rules IPv6 addresses should be used identically internally; we should not denote them with brackets in one operating system and without them in another.
Paul Wolfgang (DC-AE/ESF1) ab3e8565 2019-07-01T19:59:01 urlparse: Add IPv4 and IPv6 based tests
Edward Thomson 381991a1 2020-12-23T10:47:23 Merge pull request #5749 from lhchavez/gcc-10 Fix the `-DENABLE_WERROR=ON` build for gcc 10.2
Miguel Arroz 8dc0ba75 2020-12-21T21:31:50 Change libssh2 version to 1.9.0 on focal
Miguel Arroz 3433acd9 2020-12-21T21:27:58 Wrap newer hostkeys in #ifdefs This allows the library to be built using a pre-1.9.0 version of libssh2.
Miguel Arroz ed7b20e7 2020-12-21T17:26:34 Add support for additional hostkey types. Specifically: ECDSA_256, ECDSA_384, ECDSA_521 and ED25519.
lhchavez 212ae9a7 2020-12-21T06:48:48 Fix the `-DENABLE_WERROR=ON` build for gcc 10.2 This change makes it possible to build with newer versions of gcc without warnings. There were two warnings issued: * gcc 8 added [`-Wstringop-truncation`](https://developers.redhat.com/blog/2018/05/24/detecting-string-truncation-with-gcc-8/), which warns if a call to `strncpy(3)` is prone to accidentally truncating the destination string, since `strncpy(3)` does NOT add a terminating `NULL` if the destination buffer is not large enough to hold the input. This change uses the pattern suggested in https://us-cert.cisa.gov/bsi/articles/knowledge/coding-practices/strncpy-and-strncat to fix the locations flagged by gcc. * There was a potentially uninitialized access of `dest` in `fs_copy`.
Edward Thomson f4b473fa 2020-12-20T21:25:22 Merge pull request #5746 from libgit2/ethomson/configmapcache repository: use intptr_t's in the config map cache
Edward Thomson 1b708683 2020-12-20T20:42:40 config_cache: cleanup config map lookup
Edward Thomson f52f593e 2020-12-20T16:33:42 repository: use intptr_t's in the config map cache Since we're using atomic primitives to read and write into the config map cache, we need to read/write something pointer-sized. Use an `intptr_t` for the config map cache.
Edward Thomson 70ed3087 2020-12-20T11:34:44 Merge pull request #5744 from lhchavez/last-multiply-int64-overflow-change-i-swear Add tests for `git__multiply_int64_overflow`
lhchavez 5ab0736b 2020-12-19T09:30:26 Add tests for `git__multiply_int64_overflow` As it turns out, the implementation of `git__multiply_int64_overflow` is full of edge cases and tricky arithmetic. That means that it should have unit tests. As a result, a bug in `git__strntol64` was found (and fixed!) in clang+32-bit.
Edward Thomson a67e5e08 2020-12-19T09:57:11 Merge pull request #5743 from lhchavez/fix-clang-32-bit-tests Third attempt to fix the 32-bit version of `git__multiply_int64_overf…
lhchavez e9b98cd5 2020-12-18T19:43:13 Third attempt to fix the 32-bit version of `git__multiply_int64_overflow` This change should now fix the issue for realsies. `./libgit2_clar -score::strtol` passes on a 32-bit Docker.
Edward Thomson c76e9f22 2020-12-18T17:57:46 Merge pull request #5742 from lhchavez/fix-clang-32-bit-build Avoid using `__builtin_mul_overflow` with the clang+32-bit combo
Edward Thomson be85c7e8 2020-12-18T15:11:12 ci: only run codeql nightly
lhchavez 7f8ae019 2020-12-18T07:03:21 Avoid using `__builtin_mul_overflow` with the clang+32-bit combo This causes clang to produce an undefined reference to `__mulodi4`. This could be fixed by statically linking some compiler-rt libraries to provide this symbol, but let's first stop the bleeding since doing the correct long-term fix requires some non-trivial CMake knowledge which I lack.
Edward Thomson 530d37be 2020-12-16T13:30:39 Merge pull request #5709 from libgit2/ethomson/codeql ci: run codeql
Edward Thomson 7d1c5d69 2020-11-24T00:30:05 ci: run codeql
Edward Thomson 1865806e 2020-12-16T00:16:10 Merge pull request #5740 from libgit2/ethomson/zlib pack: continue zlib while we can make progress
Edward Thomson 93f61c5a 2020-12-15T23:03:03 pack: continue zlib while we can make progress Continue the zlib stream as long as we can make progress; stop when we stop getting output _or_ when zlib stops taking input from us.
Edward Thomson 4ab9567f 2020-12-14T17:47:24 Merge pull request #4418 from libgit2/cmn/rc4 Re-enable the RC4 test