github GitoxideLabs/gitoxide gix-filter-v0.36.1
gix-filter v0.36.1

7 hours ago

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. With core.autocrlf=input, that was 38% of the user CPU of
    gix status on 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
    %f inherited 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::Context require absolute repository paths and have
    Repository::command_context() resolve GIT_DIR and GIT_WORK_TREE
    against Repository::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-map and compare against
    Git using git diff --exit-code from 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)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.