Log

Author Commit Date CI Message
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 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
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 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 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.
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
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.
Edward Thomson a09d4367 2021-08-23T15:27:42 Merge pull request #6000 from libgit2/ethomson/ci ci: tag new containers with the latest tag
Edward Thomson 3b603d31 2021-08-23T15:00:39 ci: tag new containers with the latest tag
Edward Thomson dbcb1cd7 2021-08-23T15:02:49 ci: update container versions Update all the container versions to force a rebuild so that they'll get tagged with latest (due to changes in the CI scripts).
Edward Thomson 76c503c3 2021-08-21T08:46:17 Merge pull request #5995 from libgit2/ethomson/centos_ci ci: update centos builds
Edward Thomson 9806f5ac 2021-08-21T08:27:59 Merge pull request #5999 from libgit2/ethomson/openssl_valgrind openssl: don't fail when we can't customize allocators
Edward Thomson ecdb41f9 2021-08-17T08:19:10 ci: update centos to find libssh2
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.
Edward Thomson 3f02b5b9 2021-08-18T16:33:31 Merge pull request #5997 from boretrk/sha1_endian sha1dc: remove conditional for <sys/types.h>
Peter Pettersson 727d903a 2021-08-18T21:01:36 sha1dc: remove conditional for <sys/types.h>
Edward Thomson a7b2195a 2021-08-17T07:04:34 Merge pull request #5994 from jairbubbles/fix-libgit2-filename-not-being-passed-to-the-reso
Julien Richard 2dbe413e 2021-08-17T11:34:11 Fix LIBGIT2_FILENAME not being passed to the resource compiler
Edward Thomson a42577db 2021-08-16T14:09:17 ci: update centos builds
Edward Thomson d4416624 2021-08-16T13:49:38 ci: update centos builds
Edward Thomson 5ad53ec7 2021-08-15T23:19:54 ci: update centos builds
Edward Thomson 1ebdb6f2 2021-08-15T22:53:19 ci: update centos7 and centos8 build
Edward Thomson 8ea666b2 2021-08-15T18:00:22 ci: run centos7 and centos8 builds nightly
Edward Thomson f25ca0e3 2021-08-15T17:53:44 Merge pull request #5992 from libgit2/ethomson/centos_ci ci: add centos 7 and centos 8
Edward Thomson 62471777 2021-08-15T17:18:04 ci: run centos7 and centos8 builds nightly
Edward Thomson e6c9fcf0 2021-08-09T08:42:06 ci: add centos7 and centos8 docker definitions
Edward Thomson 4ae6107b 2021-08-14T22:11:49 Merge pull request #5989 from libgit2/ethomson/ci_nightly ci: update nightly to use source path
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 f01cddb1 2021-08-14T10:06:12 ci: update nightly to use source path
Edward Thomson 631ae5a6 2021-08-10T13:34:20 ci: final docs update
Edward Thomson fd54db0e 2021-08-10T13:13:10 ci: build docs in source directory for consistency All the other workflows jobs check out into the `source` directory; do this in the documentation build job as well, for consistency across jobs.
Edward Thomson 0e38f2b3 2021-08-10T11:28:17 ci: update path during documentation generation
Edward Thomson 587494d0 2021-08-10T10:44:17 ci: update paths during docker build
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
Edward Thomson 9c64acdd 2021-08-09T15:16:42 Merge pull request #5980 from libgit2/ethomson/dockerfile docker: remove the entrypoint
Edward Thomson 962d78d3 2021-08-09T15:12:10 Merge pull request #5978 from boretrk/amiga amiga: use ';' as path list separator on AmigaOS
Edward Thomson b140e22e 2021-08-08T11:07:43 ci: remove the docker entrypoint Omitting an entrypoint.sh to configure the container and instead depending on docker primitives allows us to be more portable. (If a distribution uses a different mechanism for adding users, we need not have multiple entrypoint.sh files or invariants within it; instead we can configure that in the dockerfile itself along with all the other distribution specific components.)
lhchavez 7488705d 2021-03-04T06:19:49 Add guidelines for the GIT_WARN_UNUSED_RESULT annotation
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.
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
Peter Pettersson 2c2cb3f3 2021-08-08T14:35:07 amiga: use ';' as path list separator on AmigaOS Like on Windows ':' is used for volume names in absolute paths.
Peter Pettersson 4584660e 2021-08-08T12:13:16 bugfix: don't generate paths with empty segments
Peter Pettersson d095502e 2021-08-08T13:34:06 tests: don't generate false positives on empty path 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 e65229ee 2021-07-31T09:45:30 Merge pull request #5962 from libgit2/ethomson/futimens
Edward Thomson f6b3f726 2021-07-30T12:40:36 README: link to more information about cmake
Edward Thomson 3062a633 2021-07-30T12:03:35 cmake: extended futimens checking on macOS
Edward Thomson c73ee740 2021-07-30T12:02:00 Merge pull request #5961 from libgit2/ethomson/odb_tests_priority tests: reset odb backend priority
Edward Thomson e5975f36 2021-07-30T11:37:12 tests: reset odb backend priority
Edward Thomson e87bcb3d 2021-07-30T10:32:02 Merge branch 'pr/5491'
Edward Thomson 0c34767e 2021-07-30T10:31:16 Merge pull request #5957 from lhchavez/fix-master-build Fix one memory leak in master
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.
lhchavez d15b6132 2021-07-30T07:18:57 Fix one memory leak in master There was one test that wasn't correctly disposing of the repository.
Edward Thomson cc68c19a 2021-07-30T08:56:51 Merge branch 'pr/5861'
Edward Thomson f2915ec4 2021-07-30T08:56:34 tests: reformat upstream merge
Edward Thomson 47dd9f47 2021-07-30T08:52:37 Merge branch 'pr/5940'
Edward Thomson 346f15ba 2021-07-30T08:51:43 status: document `GIT_STATUS_OPT_INCLUDE_UNREADABLE` Document `GIT_STATUS_OPT_INCLUDE_UNREADABLE`, and some minor cleanups.
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
Edward Thomson f313b383 2021-07-28T08:14:08 Merge pull request #5954 from Crayon2000/patch-1
Crayon 59af78a4 2021-07-28T01:58:32 Fix typo in general.c
Edward Thomson f08cae10 2021-07-27T18:59:15 Merge pull request #5767 from lhchavez/cgraph-reachable-from-any
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
Edward Thomson 08c79128 2021-07-27T10:18:52 Merge pull request #5766 from lhchavez/cgraph-generation-cmp commit-graph: Introduce `git_commit_list_generation_cmp`
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