- 10 Jun, 2023 1 commit
-
-
Miguel Arroz committed
-
- 16 May, 2023 1 commit
-
-
Reginald McLean committed
-
- 15 May, 2023 3 commits
-
-
Avoid passing a `NULL` ptr to `memcpy` -- that's UB (even if size is 0)
Edward Thomson committed -
Test that `git_buf` correctly fails if no more bytes can be allocated. This is mostly for demonstration purposes.
Patrick Steinhardt committed -
In several circumstances, we get bug reports about things that happen in situations where the environment is quite limited with regards to available memory. While it's expected that functionality will fail if memory allocations fail, the assumption is that we should do so in a controlled way. Most importantly, we do not want to crash hard due to e.g. accessing NULL pointers. Naturally, it is quite hard to debug such situations. But since our addition of pluggable allocators, we are able to implement allocators that fail in deterministic ways, e.g. after a certain amount of bytes has been allocated. This commit does exactly that. To be able to properly keep track of the amount of bytes currently allocated, allocated pointers contain tracking information. This tracking information is currently limited to the number of bytes allocated, so that we can correctly replenish them on calling `free` on the pointer. In the future, it would be feasible to extend the tracked information even further, e.g. by adding information about file and line where the allocation has been performed. As this introduced some overhead to allocations though, only information essential to limited allocations is currently tracked.
Patrick Steinhardt committed
-
- 13 May, 2023 5 commits
-
-
Edward Thomson committed
-
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.
Edward Thomson committed -
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.
Edward Thomson committed -
Edward Thomson committed
-
`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.
Edward Thomson committed
-
- 09 May, 2023 2 commits
-
-
The `depth` field is suitable to specify unshallowing; provide an enum to aide in specifying the `unshallow` value.
Edward Thomson committed -
Users should provide us an array of object ids; we don't need a separate type. And especially, we should not be mutating user-providing values. Instead, use `git_oid *` in the shallow code.
Edward Thomson committed
-
- 08 May, 2023 2 commits
-
-
Edward Thomson committed
-
Edward Thomson committed
-
- 06 May, 2023 2 commits
-
-
Edward Thomson committed
-
Edward Thomson committed
-
- 25 Apr, 2023 1 commit
-
-
Teach the smart transport more about oid types, instead of assuming SHA1.
Edward Thomson committed
-
- 24 Apr, 2023 2 commits
-
-
Edward Thomson committed
-
The opt mechanism isn't _really_ meant to be for feature flags, and it's weird to feature flag shallow / unshallow at all.
Edward Thomson committed
-
- 11 Apr, 2023 1 commit
-
-
When the programdata path is missing, ensure that we pass down the `GIT_ENOTFOUND` error to the caller instead of converting it to a generic `-1`.
Edward Thomson committed
-
- 10 Apr, 2023 4 commits
-
-
Edward Thomson committed
-
Edward Thomson committed
-
Edward Thomson committed
-
Edward Thomson committed
-
- 04 Apr, 2023 4 commits
-
-
When the repository is opened with `GIT_REPOSITORY_OPEN_FROM_ENV`, honor the `GIT_CONFIG_GLOBAL`, `GIT_CONFIG_SYSTEM` and `GIT_CONFIG_NOSYSTEM` environment variables.
Edward Thomson committed -
When the repository is opened with `GIT_REPOSITORY_OPEN_FROM_ENV`, honor the `GIT_COMMON_DIR` environment variable.
Edward Thomson committed -
When the repository is opened with `GIT_REPOSITORY_OPEN_FROM_ENV`, honor the `GIT_WORK_TREE` environment variable.
Edward Thomson committed -
Shocked that our leak checkers didn't find this earlier.
Edward Thomson committed
-
- 21 Mar, 2023 2 commits
-
-
Add functions to use convert a string with length, instead of assuming NUL termination. In addition, move the utf8 to 16 conversion routines into the `git_utf8` namespace instead of using namespaceless `git__` prefixed names.
Edward Thomson committed -
Provide a stream interface for Schannel - the native crypto APIs - on Windows. This allows Windows to use the same HTTP transport that all the other platforms use, with its own native crypto. Ultimately this allows us to deprecate WinHTTP and we need not add support for our socket changes in two places (our HTTP stack and the WinHTTP stack).
Edward Thomson committed
-
- 02 Mar, 2023 2 commits
-
-
Ensure that when all files beneath a directory are ignored that we add the files when FORCE is specified.
Edward Thomson committed -
Ensure that when all files beneath a directory are ignored that we actually ignore the files.
Edward Thomson committed
-
- 01 Mar, 2023 1 commit
-
-
`git_odb_open` was erroneously removed during a refactoring; add it back.
Edward Thomson committed
-
- 27 Feb, 2023 3 commits
-
-
Edward Thomson committed
-
The `git_fs_path_owner_is_current_user` expects the root dir on unix (`/`) to be owned by a non-current user. This makes sense unless root (or euid == 0) is running the tests, which often happens during distro build / packaging scripts. Allow them to run the tests.
Edward Thomson committed -
This reverts commit 43e84e24.
Edward Thomson committed
-
- 25 Feb, 2023 1 commit
-
-
If a user attempts to add a custom extension that the system already supports, or that is already in their list of custom extensions, de-dup it.
Edward Thomson committed
-
- 24 Feb, 2023 1 commit
-
-
Edward Thomson committed
-
- 23 Feb, 2023 1 commit
-
-
The remote::httpproxy::env test (correctly) reset the environment before running; however the other tests are also impacted by the environment and need to have it isolated.
Edward Thomson committed
-
- 17 Feb, 2023 1 commit
-
-
Miguel Arroz committed
-