- 18 May, 2021 1 commit
-
-
Dmitry Lobanov committed
-
- 16 May, 2021 3 commits
-
-
Dmitry Lobanov committed
-
Dmitry Lobanov committed
-
Dmitry Lobanov committed
-
- 12 May, 2021 2 commits
-
-
Dmitry Lobanov committed
-
Dmitry Lobanov committed
-
- 11 May, 2021 4 commits
-
-
buf: remove unnecessary buf_text namespace
Edward Thomson committed -
filter: stop taking git_buf as user input
Edward Thomson committed -
Instead of a `git_bom_t` that a `git_buf` function returns, let's keep it `git_buf_bom_t`.
Edward Thomson committed -
The `git_buf_text` namespace is unnecessary and strange. Remove it, just keep the functions prefixed with `git_buf`.
Edward Thomson committed
-
- 06 May, 2021 8 commits
-
-
Introduce `git_filter_list__convert_buf` which behaves like the old implementation of `git_filter_list__apply_data`, where it might move the input data buffer over into the output data buffer space for efficiency. This new implementation will do so in a more predictible way, always freeing the given input buffer (either moving it to the output buffer or filtering it into the output buffer first). Convert internal users to it.
Edward Thomson committed -
Deprecate `git_filter_list_apply_to_data` as it takes user input as a `git_buf`. Users should use `git_filter_list_apply_to_buffer` instead.
Edward Thomson committed -
Provide a filter application mechanism that takes a user-provided string and length, instead of a `git_buf`.
Edward Thomson committed -
The API `git_filter_list_apply_to_data` shares data between its out and in parameters to avoid unnecessarily copying it when there are no filters to apply. However, it does so in a manner that is potentially confusing, leaving both `git_buf`s populated with data. This is risky for end-users who have to know how to deal with this. Instead, we remove this optimization - users who want to avoid unnecessary copies can use the longstanding streaming API or check the filter status before invoking the filters.
Edward Thomson committed -
`git_filter_list_stream_data` takes user input in a `git_buf`. `git_buf` should only be used when libgit2 itself needs to allocate data and returned to a user that they can free when they wish. Replace it with `git_filter_list_stream_buffer` that takes a data buffer and length.
Edward Thomson committed -
test: clean up memory leaks
Edward Thomson committed -
Edward Thomson committed
-
Support `core.longpaths` on Windows
Edward Thomson committed
-
- 05 May, 2021 4 commits
-
-
Edward Thomson committed
-
Edward Thomson committed
-
Ian Hattendorf committed
-
Edward Thomson committed
-
- 04 May, 2021 2 commits
-
-
ci: use GitHub for storing mingw-w64 build dependency
Edward Thomson committed -
Edward Thomson committed
-
- 02 May, 2021 1 commit
-
-
Working directory path validation
Edward Thomson committed
-
- 28 Apr, 2021 15 commits
-
-
Ensure that a repository's path (at initialization or open time) is valid. On Windows systems, this means that the longest known path beneath the repository will fit within MAX_PATH: this is a lock file for a loose object within the repository itself. Other paths, like a very long loose reference, may fail to be opened after the repository is opened. These variable length paths will be checked when they are accessed themselves. This new functionality is done at open to prevent needlessly checking every file in the gitdir (eg, `MERGE_HEAD`) for its length when we could instead check once at repository open time.
Edward Thomson committed -
Edward Thomson committed
-
On Windows, we need to enforce MAX_PATH for loose references and their reflogs. Ensure that any path - including the lock file - would fit within the 260 character maximum. We do not honor core.longpaths for loose reference files or reflogs. core.longpaths only applies to paths in the working directory.
Edward Thomson committed -
Let `git_path_find_dir` simply take a `git_buf` that contains a directory or a file, instead of trying to both join a path AND then deal with prettifying it or its basename. This allows consumers to join paths themselves (and apply any necessary rules - like fitting within MAX_PATH).
Edward Thomson committed -
Worktree paths need to fix within MAX_PATH always, regardless of `core.longpaths` setting.
Edward Thomson committed -
Validate that working directory paths honor `core.longpaths` where appropriate. Paths to the submodule gitdirs must always honor the operating system length restrictions; `core.longpaths` does not affect gitdir paths.
Edward Thomson committed -
Supply the repository for the filesystem and workdir iterators - for workdir iterators, this is non-null and we can lookup the core.longpaths configuration option. (For regular filesystem iterators, this is NULL, so core.longpaths does not apply.)
Edward Thomson committed -
Edward Thomson committed
-
We should allow attribute files - inside working directories - to have names longer than MAX_PATH when core.longpaths is set. `git_attr_path__init` takes a repository to validate the path with.
Edward Thomson committed -
Edward Thomson committed
-
Edward Thomson committed
-
The new git_repository_workdir_path function does error checking on working directory inputs on Windows; use it to construct paths within working directories.
Edward Thomson committed -
Use `git_repository_workdir_path` to generate workdir paths since it will validate the length.
Edward Thomson committed -
Ensure that we are validating working directory paths before we try to write to them.
Edward Thomson committed -
We're not necessarily checking out into the working directory. We could be checking out into an arbitrary location. Ensure that when we are writing conflict data that we do it in the checkout target.
Edward Thomson committed
-