Performance
-
only read the index object when there is a CRLF to convert
In auto-text mode,eol::convert_to_git()read the file's object from the index
to see if it has CRLF, even when the worktree content had no CRLF to convert.
That check can only prevent a conversion, so without a CRLF the result is
always the same. Reading the object means a pack lookup and decompression for
every file. Withcore.autocrlf=input, that was 38% of the user CPU of
gix statuson a repository whose index stat was out of date.Git also reads the object in that case, but it rarely gets there for unchanged
files as its status refreshes the index.
Bug Fixes
-
run filter drivers from the worktree root
Status now passes worktree-relative paths to filters. When invoked outside
that worktree, a required clean filter reading sibling configuration through
%finherited the caller CWD and failed to find.clean-map.Set the CWD in the shared driver launcher so both single-file and process
filters run from the configured worktree, matching Git.Make
gix_command::Contextrequire absolute repository paths and have
Repository::command_context()resolveGIT_DIRandGIT_WORK_TREE
againstRepository::current_dir(). Using the live process CWD in the
filter launcher would lose the base captured when a relative repository
was opened. Anchoring paths at context creation keeps them valid after
either the caller or the child changes CWD, without redundant resolution
or environment overrides in the filter launcher.Extend the status regression to read
.clean-mapand compare against
Git usinggit diff --exit-codefrom a subdirectory. Cover a filter
invoking Git from outside its worktree with an absolute context, and
verify that command contexts for normal and bare repositories retain the
captured CWD after the process changes directory. Update command tests
to use absolute paths and verify unchanged environment forwarding.
Commit Statistics
- 7 commits contributed to the release over the course of 14 calendar days.
- 14 days passed between releases.
- 2 commits were understood as conventional.
- 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
- Uncategorized
- Merge pull request #3078 from krlvi/gix-filter-eol-skip-index-lookup (b604e07)
- Only read the index object when there is a CRLF to convert (596f1ba)
- Merge pull request #3072 from juanibiapina/fix-status-filter-path (86d5fa6)
- Run filter drivers from the worktree root (3dd6bd8)
- Merge pull request #3053 from GitoxideLabs/various-improvements (2d8dcc4)
- Release gix-error v0.5.1, gix-utils v0.5.1 (6d1b686)
- Merge pull request #3048 from GitoxideLabs/new-release (5fccccf)