VersionControlService.TextDiff 0.4.0

dotnet add package VersionControlService.TextDiff --version 0.4.0
                    
NuGet\Install-Package VersionControlService.TextDiff -Version 0.4.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="VersionControlService.TextDiff" Version="0.4.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="VersionControlService.TextDiff" Version="0.4.0" />
                    
Directory.Packages.props
<PackageReference Include="VersionControlService.TextDiff" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add VersionControlService.TextDiff --version 0.4.0
                    
#r "nuget: VersionControlService.TextDiff, 0.4.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package VersionControlService.TextDiff@0.4.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=VersionControlService.TextDiff&version=0.4.0
                    
Install as a Cake Addin
#tool nuget:?package=VersionControlService.TextDiff&version=0.4.0
                    
Install as a Cake Tool

Pure incremental text decoding and scanning primitives for VersionControlService.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on VersionControlService.TextDiff:

Package Downloads
VersionControlService

Provider-neutral version control workspace services for Fable and .NET consumers.

VersionControlService.Git

Git and Git LFS provider for VersionControlService workspace sessions.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.4.0 0 11/5/2026
0.3.0 120 11/1/2026
0.2.2 202 10/26/2026
0.2.1 363 10/9/2026
0.2.0 116 10/8/2026

### Added

-   `GitExecution.setGitExecutableProvider` lets a host choose the git executable for every Git operation in the process. The selection has to be an absolute path, and `None` uses the git on the PATH. `GitExecution.resetGitExecutableProvider` goes back to automatic discovery.
-   `DependencyStatus.ProbeExecutablePath` names the git executable that `CheckDependencies` ran.
-   The lakeFS provider reports its HTTP requests on `OperationContext.ReportOutput`, with the credentials of the connection removed.
-   `CommandOutput.ObserveNotice` adds a `Notice` line to a command. `OutputReporter.knownSecrets` and `beginCommandWithSecrets` start a command that hides credentials the caller knows as values.
-   `ObjectMaterializationCodes` holds the failure and recovery codes of object materialization. The Git provider reports the same strings as before.
-   `ProgressPhaseCodes` holds the phase codes of steps that more than one provider reports. Both providers report `fetch`, `merge` and `clone`. Only lakeFS reports `download-objects`, `upload-objects` and `publish`, because Git reports those steps under its own codes.
-   The lakeFS provider reports an event when a step starts, with the codes of `ProgressPhaseCodes`. A step that does no work reports nothing.

### Changed

-   `DependencyStatus` has a new `ProbeExecutablePath` field, so record literals have to set it.
-   With an explicit selection, the Git provider's `CheckDependencies` checks that git and does not fall back to the one on the PATH. An unusable selection marks every component as not installed, and the `Remediation` names the path.
-   lakeFS requests that time out fail with the category `Timeout` and the code `timeout`, as in the Git provider. They used to fail as `Network` with `network_failure`.
-   The lakeFS provider removes the credentials of the connection from failure messages built from an error response.
-   `ObjectMaterializationService.Materialize` and `Dematerialize` take an array of paths, so one call covers a single file or a whole folder. A call with one path still fails with that path's own code and message.

### Removed

-   `ObjectBatchMaterializationService`, `WorkspaceSession.ObjectBatchMaterialization` and `ServiceAvailability.ObjectBatchMaterialization` are removed, because `ObjectMaterialization` takes several paths now. Record literals have to drop the field.
-   `TextDiffSupervisorOptions.GitExecutable` is removed, so record literals have to drop it. The text diff supervisor uses the `GitExecution` selection.