18 Commits over 1,157 Days - 0.00cph!
Fix regression with rooted paths without volume labels on Windows
Also explain why we're not just always calling Path.GetFullPath
xoofx/zio#92
HasWindowsVolumeLabel: Avoid IndexOf, only supported on Windows
Explain why we're not just always calling Path.GetFullPath
Fix regression with rooted paths without volume labels on Windows
xoofx/zio#92
Optimize cross-filesystem operations
Adds a new function to that resolves a path
through all underlying filesystems. Allows cross-file system operations
to resolve to the final FS and call operations directly on that file system.
Merge pull request #94 from agocke/optimize-fscross
Optimize cross-filesystem operations
Fix cross-filesystem operations in MountFileSystem
Remove duplicated code
Merge pull request #95 from GerardSmit/fix/mount-filesystem-crosscopy
Fix cross-filesystem operations in MountFileSystem
Added failing test for rooted path without volume on Windows
xoofx/zio#92
Failing test for watching a SubFileSystem involving case sensitivity
Watcher events get silently discarded if all conditions are met:
* SubFileSystem was created with incorrect case
* Changed file path includes a ~
* Any segment of changed file path is short enough to possibly be a SFN
Avoid calling Path.GetFullPath for already-rooted paths
Fixes TestSubFileSystem.TestWatcherCaseSensitive
Use a ManualResetEvent in TestSubFileSystem.TestWatcherCaseSensitive
A bit friendlier for CI runners
Refactor FileSystemWatcher tests to use ManualResetEvent
As requested in xoofx/zio/pull/92#discussion_r1648812981
Merge pull request #92 from Facepunch/fix/sub-watcher-case-sensitive
Fix SubFileSystem watcher (sometimes) silently discarding events
Merge pull request #93 from Facepunch/fix/watcher-test-wait-handles
Refactor FileSystemWatcher tests to use ManualResetEvent
Refactor FileSystemWatcher tests to use ManualResetEvent
As requested in xoofx/zio/pull/92#discussion_r1648812981
Use a ManualResetEvent in TestSubFileSystem.TestWatcherCaseSensitive
A bit friendlier for CI runners
Avoid calling Path.GetFullPath for already-rooted paths
Fixes TestSubFileSystem.TestWatcherCaseSensitive
Failing test for watching a SubFileSystem involving case sensitivity
Watcher events get silently discarded if all conditions are met:
* SubFileSystem was created with incorrect case
* Changed file path includes a ~
* Any segment of changed file path is short enough to possibly be a SFN
Fix case sensitivity of UPath.IsInDirectory on Windows
This was causing some FileSystemWatcher events from a SubFileSystem to get dropped.
Facepunch/sbox-issues#5683
Fix case sensitivity of UPath.IsInDirectory on Windows
This was causing some FileSystemWatcher events from a SubFileSystem to get dropped.
Fix not checking that directory exists
AggregateFileSystem: Normalize the search pattern before searching child filesystems
Merge pull request #58 from Facepunch/agg-enum-speedup
Speed up EnumeratePathsImpl in AggregateFileSystem
For performance reasons, `MountFileSystem`/`AggregateFileSystem` are no longer thread safe when modifying their mounts/filesystems.
Remove usage of lock to improve performance.
Breaking change: `MountFileSystem`/`AggregateFileSystem` when enumerating files are no longer discarding files with different case sensitive names.
Previously `a.txt` and `A.txt` would be considered as a same file.
Add new `IFileSystem.EnumerateItems` to optimize scanning by fetching important attributes along the scan (e.g length, file or directory...etc.)
Bump to 0.12.0
Fix PhysicalFileSystem on .NET Framework 4.*
Merge pull request #60 from Jcw87/physical-net40
Fix PhysicalFileSystem on .NET Framework 4.*
Fix coverage in ci
Update Zio.Tests with latest coverlet and Test Sdk
Remove support for netstandard1.3
Bump to 0.13.0
Update NuGet packages and tests to net6.0
Don't throw on `fs.CreateDirectory("/")` (#61)
Add some missing tests for AggregateFileSystem
Fix AggregateFileSystem not following fallbacks (#64)
Bump to 0.14.0
Use MinVer
Update ci to use dotnet-releaser
Update ci badges
Fix ci with dotnet-releaser when secrets are not available
Fix ci with dotnet-releaser when secrets are not available (bis)
Use bash with dotnet-releaser in GitHub Action
add ZipArchiveFileSystem
remove unreachable code
change Pair to non generic and rename to EntryState
use Interlocked incremement and decrement for EntryState,Count
add _openStreamsLock and remove redundant Interlocked de/increments
Merge pull request #65 from jakubqwe/ZipArchive
add ZipArchive support
Add support for net6.0
Update dependencies
Update tests for net6.0
Update doc readme for NuGet packaging
Update doc readme
Made compressionlevel configurable for ZipArchiveFileSystem
Merge pull request #68 from Draddy1911/compressionlevel-changeable
Made compressionlevel configurable for ZipArchiveFileSystem
Fix issue #70, do not allow control characters in path
Fix security issues with filesystems, 2nd attempt (#70)
Correction GetFirstDirectory
Update UPathExtensions.cs
Update with use of offset
Correction first directory offset
Added tests for extension
Correction offset
Merge pull request #72 from ykafia/ykafia-patch-extension
Correction GetFirstDirectory
Use C# 10
[Zio] Use file-scoped namespaces
[Zio.Tests] Use file-scoped namespaces
Merge pull request #73 from carbon/fsn
Use file-scoped namespaces
Update to net7.0
Remove support for net40 net45
UPath performance improvements (#77)
* UPath performance improvements
* revert public API changes
* missed the documentation tags
* restore exception behaviour
---------
Co-authored-by: Sandro Bollhalder <sandro.bollhalder@roche.com>
Update readme
Update readme about net7.0 SDK
Improve Code Quality (#80)
* Make TextSlice readonly
* Update IFileSystem to use file-scoped namespaces
* Make NodeResult readonly and pass by reference
* Replace NET45 symbol with NETFRAMEWORK
* Remove redundant scope
* Eliminate a few allocations in ZipArchiveFileSystem and seal private classes
* Improve nullability annotations
Update tests to .NET 8
+ update package dependencies
Add nuget.org only config
Update ci.yml with nuget config
Update readme.md
Fix changing directory times
Merge pull request #84 from GerardSmit/fix/directory-dates
Fix changing directory times
Add symlink support
Add symlink delete test
Add ResolveLinkTarget
Refactor ResolveLinkTarget to TryResolveLinkTarget
Fix XMLDoc
Fix MountFileSystem implementation
Add SubFileSystem test
Fix tests
Fix Linux unit tests
Add CI for Linux
Fix CI errors
Skip SetCreationTime on Linux
Fix Dispose Exception by bumping xunit.runner.visualstudio
Merge pull request #87 from GerardSmit/fix/linux-unit-tests
Fix Linux unit tests
Fixed ZipArchiveFileSystem and project warnings
Move InternalZipEntry
Pass UPath to GetEntry
Add extra tests
Reduce allocations in UPath.Combine
Merge pull request #85 from GerardSmit/feature/symlink
Add symlink support
Merge pull request #88 from GerardSmit/fix/zip-archive
Fixed ZipArchiveFileSystem and project warnings
Merge pull request #89 from GerardSmit/fix/upath-combine-allocation
Reduce allocations in UPath.Combine
Update readme.md
Merge branch 'xoofx:main' into master
AggregateFileSystem: Normalize the search pattern before searching child filesystems
Fix not checking that directory exists
Speed up EnumeratePathsImpl in AggregareFileSystem
Merge pull request #1 from Facepunch/agg-enum-speedup
Speed up EnumeratePathsImpl in AggregateFileSystem
Speed up EnumeratePathsImpl in AggregareFileSystem