github Byron/gitoxide gix-fs-v0.11.2
gix-fs v0.11.2

one month ago

Bug Fixes

  • Always fall back to creating file symlinks on Windows
    When the metadata of a symlink's target cannot be obtained, even if
    the error is something other than NotFound, this falls back to
    creating file symbolic links. This only affects scenarios where
    either the checkout would fail entirely or where the symlink would
    have been treated as a collision and skipped (even though it was
    not really a collision, since only its target had an error). Other
    cases are not affected, and all exisitng scenarios where directory
    symlink would be created will still create directory symlinks.

    This builds on 31d02a8 (#1363) by supporting dangling symlinks even
    when the target filenames are unusual, such as when the name is
    invalid or reserved. Windows permits such symlinks to be created,
    and going ahead and creating the matches the Git behavior.

    This should also support other errors beisdes NotFound. For
    example, some permissions-related errors, in some cases where
    traversal or acccess (even to access metadata) are not allowed,
    would fail to create a symlink. This should address that as well.

    This works by using Path::is_dir() in the standard library, which
    automatically converts all errors (not just NotFound) into
    false. The logic here is thus quite similar to what was already
    present, just more tolerant, even though the code itself is shorter
    and simpler.

    This fixes #1420, and also fixes #1421.

Commit Statistics

  • 8 commits contributed to the release over the course of 34 calendar days.
  • 55 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages

Commit Details

view details
  • Uncategorized
    • Release gix-glob v0.16.4, gix-attributes v0.22.3, gix-command v0.3.8, gix-filter v0.11.3, gix-fs v0.11.2, gix-commitgraph v0.24.3, gix-revwalk v0.13.2, gix-traverse v0.39.2, gix-worktree-stream v0.13.1, gix-archive v0.13.2, gix-config-value v0.14.7, gix-tempfile v14.0.1, gix-ref v0.45.0, gix-sec v0.10.7, gix-config v0.38.0, gix-prompt v0.8.6, gix-url v0.27.4, gix-credentials v0.24.3, gix-ignore v0.11.3, gix-index v0.33.1, gix-worktree v0.34.1, gix-diff v0.44.1, gix-discover v0.33.0, gix-pathspec v0.7.6, gix-dir v0.6.0, gix-mailmap v0.23.5, gix-negotiate v0.13.2, gix-pack v0.51.1, gix-odb v0.61.1, gix-transport v0.42.2, gix-protocol v0.45.2, gix-revision v0.27.2, gix-refspec v0.23.1, gix-status v0.11.0, gix-submodule v0.12.0, gix-worktree-state v0.11.1, gix v0.64.0, gix-fsck v0.4.1, gitoxide-core v0.39.0, gitoxide v0.37.0 (a1b73a6)
    • Update manifests (by cargo-smart-release) (0470df3)
    • Prepare changelog prior to release (99c00cc)
    • Merge pull request #1425 from EliahKagan/strange-symlink-targets (6df6e84)
    • Always fall back to creating file symlinks on Windows (1e81220)
    • Merge branch 'main' into config-key-take-2 (9fa1054)
    • Merge branch 'status' (2f9f0ac)
    • Avoid condition that is always false in is_collision_error (8644d0f)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.