summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* mehethomson/ssh_execEdward Thomson2023-05-171-10/+10
|
* fixup! ssh: GIT_SSH_LIBSSH2 is now distinct from GIT_SSHEdward Thomson2023-05-171-2/+2
|
* fixup! Introduce git_process class that invokes processesEdward Thomson2023-05-171-4/+1
|
* fixup! ssh: introduce GIT_SSH_EXEC for external OpenSSHEdward Thomson2023-05-171-0/+1
|
* testEdward Thomson2023-05-171-5/+2
|
* fixup! Introduce git_process class that invokes processesEdward Thomson2023-05-171-0/+4
|
* fixup! Introduce git_process class that invokes processesEdward Thomson2023-05-171-1/+1
|
* process: test SIGTERM detectionEdward Thomson2023-05-174-1/+79
| | | | | | We can't reliably detect SIGPIPE on close because of platform differences. Track `pid` and send `SIGTERM` to a function and ensure that we can detect it.
* ci: split ssh into exec and libssh2Edward Thomson2023-05-171-8/+8
|
* ssh: introduce GIT_SSH_EXEC for external OpenSSHEdward Thomson2023-05-175-2/+302
| | | | | | We can now use the `git_process` class to invoke OpenSSH and use it as an SSH transport. This may be preferred over libssh2 for a variety of callers.
* ssh: GIT_SSH_LIBSSH2 is now distinct from GIT_SSHEdward Thomson2023-05-178-25/+28
| | | | | | | We may want to support SSH but with a different provider that is not libssh2. Add GIT_SSH to indicate that we have some inbuilt SSH support and GIT_SSH_LIBSSH2 to indicate that support is via libssh2. This is similar to how we support GIT_HTTPS and GIT_OPENSSL, for example.
* ssh: refactor libssh2-specific bits into their own fileEdward Thomson2023-05-175-1107/+1160
|
* Introduce git_process class that invokes processesEdward Thomson2023-05-1710-0/+1508
|
* Introduce `git_strlist` to manage string listsEdward Thomson2023-05-172-0/+111
|
* Merge branch 'worktree_prunable' (PR #5712)HEADmainEdward Thomson2023-05-163-11/+41
|\
| * worktree: document that is_prunable sets error messagesEdward Thomson2023-05-161-1/+3
| | | | | | | | | | When a worktree is not prunable, an error message will be set with information about why. Document that.
| * worktree: update prunable to reflect refactoringsEdward Thomson2023-05-161-11/+11
| | | | | | | | | | PR #5712 predates several refactorings to move the utility code into a more general purpose codebase. Update to reflect the refactorings.
| * Refactor git_worktree_is_prunable slightly to fix memory leakReginald McLean2023-05-161-10/+16
| |
| * Added check if gitdir exists in is_prunable()Reginald McLean2023-05-161-0/+9
| | | | | | | | Fixes #5598
| * Added missing is_prunable testReginald McLean2023-05-161-0/+13
|/
* Merge pull request #6535 from libgit2/ethomson/timeoutsEdward Thomson2023-05-1345-410/+779
|\
| * clone: skip timeout tests on WinHTTPethomson/timeoutsEdward Thomson2023-05-131-0/+16
| |
| * win32: use WSAGetLastError to determine blockingEdward Thomson2023-05-131-1/+14
| |
| * win32: getsockopt takes a `char *` instead of a `void *`Edward Thomson2023-05-131-1/+2
| | | | | | | | Monsters.
| * cmake: use `check_symbol_exists` for rand functionsEdward Thomson2023-05-131-2/+2
| | | | | | | | | | `check_symbol_exists` is superior to `check_function_exists`; use it consistently in our cmake configuration
| * posix: use WSAPoll on win32Edward Thomson2023-05-133-2/+10
| |
| * posix: introduce p_poll emulation with selectEdward Thomson2023-05-135-5/+85
| | | | | | | | Not all systems have poll(2); emulate it with select(2).
| * streams: sockets are non-blocking and can timeoutEdward Thomson2023-05-139-30/+335
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make socket I/O non-blocking and add optional timeouts. Users may now set `GIT_OPT_SET_SERVER_CONNECT_TIMEOUT` to set a shorter connection timeout. (The connect timeout cannot be longer than the operating system default.) Users may also now configure the socket read and write timeouts with `GIT_OPT_SET_SERVER_TIMEOUT`. By default, connects still timeout based on the operating system defaults (typically 75 seconds) and socket read and writes block. Add a test against our custom testing git server that ensures that we can timeout reads against a slow server.
| * ci: update to poxygit v0.6.0Edward Thomson2023-05-131-1/+1
| | | | | | | | | | v0.6.0 of poxygit add support for throttling connections to test timeouts and low-bandwidth situations.
| * net: move `gitno` buffer to `staticstr`Edward Thomson2023-05-1322-237/+151
| | | | | | | | | | | | | | | | The `gitno` buffer interface is another layer on top of socket reads. Abstract it a bit into a "static string" that has `git_str` like semantics but without heap allocation which moves the actual reading logic into the socket / stream code, and allows for easier future usage of a static / stack-allocated `git_str`-like interface.
| * net: move rfc2818 hostname / wildcard matching to utilEdward Thomson2023-05-137-78/+80
| |
| * stransport: store error informationEdward Thomson2023-05-131-11/+28
| | | | | | | | | | | | We lose some error information from the read / write callbacks to stransport. Store our own error value in the object so that we can ensure that we rely upon it.
| * util: make monotonic time fn return msEdward Thomson2023-05-1310-53/+66
|/ | | | | | | | | | | | | | | | | `git__timer` is now `git_time_monotonic`, and returns milliseconds since an arbitrary epoch. Using a floating point to store the number of seconds elapsed was clever, as it better supports the wide range of precision from the different monotonic clocks of different systems. But we're a version control system, not a real-time clock. Milliseconds is a good enough precision for our work _and_ it's the units that system calls like `poll` take and that our users interact with. Make `git_time_monotonic` return the monotonically increasing number of milliseconds "ticked" since some arbitrary epoch.
* Merge pull request #5722 from libgit2/ethomson/tlsdata_failEdward Thomson2023-05-137-33/+118
|\ | | | | Thread-local storage: handle failure cases
| * threadstate: don't use an unnecessary macroEdward Thomson2023-05-133-11/+9
| | | | | | | | | | Now that we've reduced the usage of GIT_THREADSTATE, remove it entirely in favor of git_threadstate_get().
| * oid: don't assume thread local state was initializedEdward Thomson2023-05-135-13/+45
| | | | | | | | | | | | git_oid_tostr_s could fail if thread-local state initialization fails. In that case, it will now return `NULL`. Callers should check for `NULL` and propagate the failure.
| * errors: don't rely on tls data workingEdward Thomson2023-05-131-13/+68
| | | | | | | | | | | | Thread-local storage data may fail to initialize; in this case, do not try to set the error message into it. When the thread state has not been initialized, return a hardcoded message to that affect.
| * errors: drop unneccessary g_git prefixEdward Thomson2023-05-131-6/+6
|/
* Merge pull request #6488 from libgit2/ethomson/workflowEdward Thomson2023-05-134-126/+146
|\ | | | | actions: simplify execution with composite action
| * reusableethomson/workflowEdward Thomson2023-02-172-60/+73
| |
| * nightlyEdward Thomson2023-02-171-29/+14
| |
| * fixup! fixup! actions: simplify execution with composite actionEdward Thomson2023-02-161-2/+2
| |
| * fixup! actions: simplify execution with composite actionEdward Thomson2023-02-161-1/+1
| |
| * actions: simplify execution with composite actionEdward Thomson2023-02-162-37/+59
| |
* | Merge pull request #6561 from libgit2/ethomson/xdiffEdward Thomson2023-05-1312-129/+133
|\ \ | | | | | | Update xdiff to git 2.40.1's version
| * | xdiff: update to xdiff from git 2.40.1ethomson/xdiffEdward Thomson2023-05-1111-129/+131
| | |
| * | util: add GIT_UNUSED_ARGEdward Thomson2023-05-111-0/+2
| | | | | | | | | | | | | | | Add `GIT_UNUSED_ARG` which is an attribute for arguments, for compatibility with dependencies.
* | | Merge pull request #6558 from DimitryAndric/fix-qsort-variants-2Edward Thomson2023-05-125-23/+41
|\ \ \ | |/ / |/| | Work around -Werror problems when detecting qsort variants
| * | cmake: refactor `check_prototype_definition`Edward Thomson2023-05-123-15/+21
| | | | | | | | | | | | | | | Introduce `check_prototype_definition_safe` that is safe for `Werror` usage.
| * | cmake: simplify QSORT namesEdward Thomson2023-05-123-18/+20
| | | | | | | | | | | | `QSORT_R` and `QSORT_S` -> `QSORT`