- 15 Jul, 2023 5 commits
-
-
#6576 git_diff_index_to_workdir reverse now loads untracked content
Edward Thomson committed -
tests: add allocator with limited number of bytes
Edward Thomson committed -
Fixes #6344: git_branch_move now renames the reflog instead of deleting.
Edward Thomson committed -
Partial fix for #6532: insert-by-date order.
Edward Thomson committed -
midx: do not try to look at every object in the index
Edward Thomson committed
-
- 14 Jul, 2023 4 commits
-
-
pack: cast the number of objects to size_t
Edward Thomson committed -
CMake: Search for ssh2 instead of libssh2.
Edward Thomson committed -
midx: allow unknown chunk ids in multi-pack index files
Edward Thomson committed -
docs: fix IRC server from freenode to libera
Edward Thomson committed
-
- 09 Jul, 2023 1 commit
-
-
This commit update the contributing documents with the new IRC server and remove the old freenode. Signed-off-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
Vincenzo Palazzo committed
-
- 25 Jun, 2023 1 commit
-
-
Fixes "CMake Error: could not resolve ssh2" on Windows-MSVC.
Fabio Alessandrelli committed
-
- 22 Jun, 2023 3 commits
-
-
Similar to previous issues around doing way too much verification at loading time, checking whether the object index chunk is monotonic is better left for git-fsck instead of every single time we want to look at something in the repository. As midx files grow, this starts taking more and more times. As an example, I went looking for this because it's taking about 1.5s to do a single object lookup in a repository that's ended up with a 7G multi-pack-index file.
Carlos Martín Nieto committed -
Similar to a previous change where we had to change the casting when loading the index file, we also need to make sure we don't restrict the numbers to 32-bit when looking up objects in packfiles. This was done about three years ago in git itself, but we never got he update in this library.
Carlos Martín Nieto committed -
These chunks work like extensions where it's fine not to know what one means. We can skip over it and keep processing the file instead of erroring out.
Carlos Martín Nieto committed
-
- 10 Jun, 2023 1 commit
-
-
Miguel Arroz committed
-
- 16 May, 2023 6 commits
-
-
Edward Thomson committed
-
When a worktree is not prunable, an error message will be set with information about why. Document that.
Edward Thomson committed -
PR #5712 predates several refactorings to move the utility code into a more general purpose codebase. Update to reflect the refactorings.
Edward Thomson committed -
Reginald McLean committed
-
Fixes #5598
Reginald McLean committed -
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
-
- 14 May, 2023 1 commit
-
-
Remove the number of functions that custom allocator users need to provide; nobody should need to implement `substrdup`. Keep it to the basics that are actually _needed_ for allocation (malloc, realloc, free) and reimplement the rest ourselves. In addition, move the failure check and error setting _out_ of the custom allocators and into a wrapper so that users don't need to deal with this. This also allows us to call our allocator (without the wrapper) early so that it does not try to set an error on failure, which may be important for bootstrapping.
Edward Thomson committed
-
- 13 May, 2023 15 commits
-
-
Edward Thomson committed
-
Edward Thomson committed
-
Edward Thomson committed
-
Monsters.
Edward Thomson committed -
`check_symbol_exists` is superior to `check_function_exists`; use it consistently in our cmake configuration
Edward Thomson committed -
Edward Thomson committed
-
Not all systems have poll(2); emulate it with select(2).
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 -
v0.6.0 of poxygit add support for throttling connections to test timeouts and low-bandwidth situations.
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
-
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.
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 -
Thread-local storage: handle failure cases
Edward Thomson committed -
Now that we've reduced the usage of GIT_THREADSTATE, remove it entirely in favor of git_threadstate_get().
Edward Thomson committed
-