gix-fs v0.11.2
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 thanNotFound
, 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 justNotFound
) 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.
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)