ktsu.BlastMerge 1.0.21

Prefix Reserved
dotnet add package ktsu.BlastMerge --version 1.0.21
                    
NuGet\Install-Package ktsu.BlastMerge -Version 1.0.21
                    
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="ktsu.BlastMerge" Version="1.0.21" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ktsu.BlastMerge" Version="1.0.21" />
                    
Directory.Packages.props
<PackageReference Include="ktsu.BlastMerge" />
                    
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 ktsu.BlastMerge --version 1.0.21
                    
#r "nuget: ktsu.BlastMerge, 1.0.21"
                    
#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.
#addin nuget:?package=ktsu.BlastMerge&version=1.0.21
                    
Install as a Cake Addin
#tool nuget:?package=ktsu.BlastMerge&version=1.0.21
                    
Install as a Cake Tool

ktsu.BlastMerge

Cross-repository file synchronization through intelligent iterative merging

Overview

BlastMerge is a revolutionary file synchronization tool that uses intelligent iterative merging to unify multiple versions of files across repositories, directories, and codebases. Unlike traditional diff tools, BlastMerge progressively merges file versions by finding the most similar pairs and resolving conflicts interactively, ultimately synchronizing entire file ecosystems into a single, unified version.

🚀 Iterative File Synchronization

The Problem

When working across multiple repositories, branches, or environments, the same files often diverge into multiple versions with overlapping changes. Traditional merge tools handle two-way merges, but when you have 3, 5, or 10+ versions of the same file scattered across different locations, manual synchronization becomes a nightmare.

The Solution: Iterative Merging

BlastMerge solves this by:

  1. Smart Discovery: Automatically finds all versions of a file across directories/repositories
  2. Hash-Based Grouping: Groups identical files and identifies unique versions
  3. Similarity Analysis: Calculates similarity scores between all version pairs
  4. Optimal Merge Order: Progressively merges the most similar versions first to minimize conflicts
  5. Interactive Resolution: Visual TUI for resolving conflicts block-by-block
  6. Cross-Repository Sync: Updates all file locations with the final merged result

Real-World Use Cases

  • Multi-Repository Synchronization: Sync the same configuration files across microservices
  • Branch Consolidation: Merge scattered feature branch changes before cleanup
  • Environment Alignment: Unify deployment scripts across dev/staging/prod environments
  • Code Migration: Consolidate similar files when merging codebases
  • Documentation Sync: Align README files across related projects

Features

🔄 Iterative Merging Engine

  • Smart File Detection: Automatically finds and groups identical file versions by hash
  • Similarity-Based Progression: Uses advanced algorithms to find the most similar files and merge them in optimal order
  • Cross-Repository Updates: Synchronizes all file locations with the merged result
  • Progressive Conflict Reduction: Each merge reduces complexity for subsequent merges
  • Interactive Conflict Resolution: Visual TUI for resolving merge conflicts block-by-block
  • Version Tracking: Maintains awareness of which files need updating across all locations

📊 Advanced File Analysis

  • Hash-Based Comparison: Fast file comparison using FNV-1a content hashing for instant duplicate detection
  • Content Similarity Scoring: Sophisticated algorithms to determine merge order
  • Multiple Diff Formats:
    • Change Summary (added/removed lines only)
    • Git-style diff (full context)
    • Rich colored diff (visual formatting)
  • Side-by-Side Display: Context-aware diff visualization with intelligent file ordering

🔧 Repository & Directory Operations

  • Directory Comparison: Compare entire directories with customizable file patterns
  • Recursive Search: Deep directory traversal to find all file versions
  • Batch Synchronization: Update multiple file locations simultaneously
  • Safe Operations: Built-in error handling and rollback capabilities

⚡ Performance & Optimization

  • Parallel Processing: Multi-threaded file hashing and discovery for improved performance
  • Async Operations: Non-blocking file operations with progress reporting
  • Optimized Hashing: Fast FNV-1a algorithm with 4KB buffers for efficient file comparison
  • Memory Management: Smart buffering and resource management for large file sets
  • Throttled Parallelism: Configurable concurrency limits to prevent system overload

đŸŽ¯ Batch Operations & Automation

  • Batch Configurations: Save and reuse complex file processing setups
  • Custom Search Paths: Define multiple directories to search across repositories
  • Path Exclusion Patterns: Skip unwanted directories (node_modules, bin, obj, .git, etc.)
  • Pre-defined Templates: Ready-made configurations for common repository synchronization tasks
  • Discrete Processing Phases: Separate gathering, hashing, grouping, and resolution phases for better UX
  • Pattern-based Processing: Support for wildcards and complex file matching

đŸ’ģ Interactive Experience

  • Rich Terminal Interface: Colored output and intuitive navigation with Spectre.Console
  • Command History: Arrow key navigation through previous inputs with persistent history across sessions
  • Smart Defaults: Intelligent defaults based on most recently used inputs
  • Progress Indicators: Real-time feedback for long-running operations with detailed phase reporting
  • Block-Level Control: Choose how to handle each difference (keep, remove, use version 1/2, use both)
  • Keyboard Shortcuts: Comprehensive keyboard navigation for all operations

Installation

Add the NuGet package:

dotnet add package ktsu.BlastMerge

Usage

Primary Workflow: Iterative File Synchronization

# Launch interactive mode for iterative merging
BlastMerge.ConsoleApp

# Select "🔀 Iterative Merge"
# 1. Specify the directory containing your repositories/projects
# 2. Enter the filename pattern (e.g., "README.md", "config.json", "*.yml")
# 3. Watch as BlastMerge finds all versions and merges them optimally
# 4. Resolve conflicts interactively when needed
# 5. All file locations are automatically updated with the unified result

Command Line Mode

# Quick comparison for files with the same name across directories
BlastMerge.ConsoleApp <directory> <filename>

# Run a saved batch configuration
BlastMerge.ConsoleApp <directory> -b <batch-name>

# List available batch configurations
BlastMerge.ConsoleApp -l

# Show version information
BlastMerge.ConsoleApp -v

# Display help
BlastMerge.ConsoleApp -h

Interactive Mode Options

  1. 🔀 Iterative Merge - Cross-repository file synchronization
  2. 🔍 Compare files with same name across directories - Find and compare files with identical names
  3. 📁 Compare two directories - Full directory comparison with file patterns
  4. 📄 Compare two specific files - Direct file-to-file comparison
  5. đŸ“Ļ Batch Operations - Create, edit, and run batch configurations for complex workflows
  6. 🔎 Find Files - Advanced file discovery with pattern matching
  7. âš™ī¸ Settings - Configure application preferences and view system information
  8. â„šī¸ Help - Comprehensive feature overview and keyboard shortcuts

Advanced: Batch Configurations

Create reusable batch configurations for complex synchronization tasks:

# Interactive batch creation
1. Select "đŸ“Ļ Batch Operations" → "Create New Batch"
2. Define file patterns: *.yml, .gitignore, LICENSE.md
3. Set search paths: /path/to/repo1, /path/to/repo2, /path/to/repo3
4. Add exclusions: */node_modules/*, */bin/*, .git/*
5. Save as "Repository Sync Batch"

# Run the batch across all configured paths
BlastMerge.ConsoleApp . -b "Repository Sync Batch"

Pre-built Templates:

  • Common Repository Files: .gitignore, .editorconfig, LICENSE files
  • Repository Sync Batch: Comprehensive configuration for multi-repo synchronization

Iterative Merge Deep Dive

  1. File Discovery: Parallel scanning across multiple search paths for matching files
  2. Version Analysis: Groups identical files by hash, identifies unique versions
  3. Similarity Calculation: Determines optimal merge sequence using content analysis
  4. Progressive Merging: Merges most similar pairs first to minimize conflicts
  5. Conflict Resolution: Interactive TUI for each conflict block with multiple resolution options
  6. Cross-Repository Update: Writes merged result to all original locations
  7. Verification: Confirms all locations now contain identical, unified content

Performance Features

  • Parallel File Discovery: Multiple search paths processed simultaneously
  • Concurrent Hashing: Configurable parallelism for optimal CPU utilization
  • Progress Tracking: Real-time updates on file discovery, hashing, and processing phases
  • Memory Optimization: Efficient handling of large file sets with controlled resource usage

Why Iterative Merging?

Traditional tools merge two files at a time, requiring manual orchestration for multiple versions. BlastMerge's iterative approach:

  • Minimizes Conflicts: By merging similar versions first, later merges have fewer conflicts
  • Optimizes Decision Making: Present easier decisions first, complex conflicts last
  • Maintains Context: Each merge builds on previous decisions
  • Scales Naturally: Works equally well with 3 files or 30 files
  • Preserves Intent: Interactive resolution ensures human judgment guides the process

Technical Features

  • Fast Hashing: FNV-1a algorithm with optimized 4KB buffer processing
  • Smart Memory Management: Controlled resource usage with configurable parallelism
  • Persistent History: Command history saved across sessions with intelligent organization
  • Async Operations: Non-blocking operations with comprehensive progress reporting
  • Cross-Platform: Works on Windows, macOS, and Linux

License

MIT License. Copyright (c) ktsu.dev

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  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

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.21 115 6/18/2025

## v1.0.21 (patch)

Changes since v1.0.20:

- Refactor batch processing output for improved clarity ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance file merge logic and improve user messaging ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor error handling in ConsoleApplicationService and FileComparisonDisplayService for improved maintainability ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor to reduce nested types and improve code organization ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor project structure and enhance functionality ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance coverage collection in Invoke-DotNetTest function and update CI workflow ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor MenuNames and related display classes for improved organization and clarity ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix unreachable code in whitespace condition and enhance batch processing ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix hardcoded similarity value in merge status calculation ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance file comparison functionality and improve documentation ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix SonarQube configuration in `dotnet.yml` by adding missing quotation marks for the host URL ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance welcome and goodbye screens with epic visuals and whitespace visualization ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance console application with TUI menu and improve file processing ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor code to reduce duplication and improve validation ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix indentation issue in coverage report generation step of CI workflow ([@matt-edmondson](https://github.com/matt-edmondson))
- Add "Run Recent Batch" option to main menu and implement tracking functionality ([@matt-edmondson](https://github.com/matt-edmondson))
- Update coverage report path in CI workflow for improved file handling ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix validation for empty batch names in AppDataBatchManager ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance welcome and goodbye screens with explosive ASCII art and improve whitespace visualization ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor ConsoleApplicationService and improve code quality ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor `BlastMergeAppData.cs` to remove conditional compilation for `System.Reflection` and `ResetForTesting` method ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance security measures for temporary file handling ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance winget manifest updater script with MSBuild integration and project agnosticism ([@matt-edmondson](https://github.com/matt-edmondson))
- Update `BlastMergeAppData.cs` to conditionally include `System.Reflection` directive in debug mode ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor side-by-side diff processing for improved accuracy and clarity ([@matt-edmondson](https://github.com/matt-edmondson))
- This sonar config is incompatible with the sonar CI integration ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance diff display with whitespace visualization and improve goodbye screen functionality ([@matt-edmondson](https://github.com/matt-edmondson))
- Add new tests for FileHasher and IterativeMergeOrchestrator, improve coverage ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix nullable integer bug in LineDifference by adding null checks ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor ConsoleApplicationService to reduce cognitive complexity and improve readability ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor Invoke-DotNetTest function for improved command execution ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix empty case clauses in switch statements to comply with SonarQube rule S3458 ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor file comparison handling and reduce cognitive complexity ([@matt-edmondson](https://github.com/matt-edmondson))
- Update project dependencies and enhance CI workflow ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix bugs in CompareDirectoriesAsync method to improve file comparison efficiency ([@matt-edmondson](https://github.com/matt-edmondson))
- Update coverage settings and enhance CI workflow for SonarQube integration ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance console application structure and functionality ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor exception handling and reduce cognitive complexity in batch operations ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor BlockMerger and DiffPlexDiffer for improved readability and reduced cognitive complexity ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance test coverage configuration and execution in .NET CI workflow ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance iterative merge functionality and improve diff processing ([@matt-edmondson](https://github.com/matt-edmondson))
- Add SonarQube configuration and improve CI workflow for .NET project ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance iterative merge display and improve diff line processing ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance welcome and goodbye screens with explosive visuals and improve whitespace handling ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor coverage collection in .NET CI workflow to enhance reliability and diagnostics ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance SonarQube integration in GitHub Actions and update test coverage configuration ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor ConsoleApplicationService to enhance readability and reduce cognitive complexity ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance coverage output handling in Invoke-DotNetTest function ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix TOCTOU race condition in CreateTempDirectory method ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor memory statistics display and reduce cognitive complexity ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor ConsoleApplicationService and introduce new services for improved functionality ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix navigation stack functionality and improve menu handling ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor `Invoke-DotNetTest` to streamline test execution and update SonarQube configuration ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix side-by-side diff alignment and improve file path labeling ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor derived cursor rules and console application service for clarity and maintainability ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor coverage handling in CI workflow and PSBuild.psm1 ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix build errors in FileDiffer by removing tuple deconstruction for ColorCodePair ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix test failures and improve test isolation in BatchProcessor and AppDataBatchManager ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor and restructure core application components ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance console application structure and functionality ([@matt-edmondson](https://github.com/matt-edmondson))
- Update SonarQube configuration and coverage report generation in CI workflow ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance navigation stack and refactor menu handling for improved user experience ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance coverage collection in `Invoke-DotNetTest` and update SonarQube configuration ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor BatchProcessor for improved readability and maintainability ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor coverage handling and update test project configuration ([@matt-edmondson](https://github.com/matt-edmondson))
- Implement safer file grouping in diff processing to prevent unrelated file merges ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance coverage collection in Invoke-DotNetTest function ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor file handling and improve test coverage for file operations ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix null initialization for collection properties in BlockContext ([@matt-edmondson](https://github.com/matt-edmondson))
- Add analysis report on file organization between Console App and Core projects ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor coverage command execution in .NET CI workflow for improved reliability ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor BlockContext and DiffPlexHelper for improved clarity and maintainability ([@matt-edmondson](https://github.com/matt-edmondson))
- Update project rules ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance .NET CI workflow with improved diagnostics and coverage reporting ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor file grouping logic in FileDisplayService for improved clarity ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix navigation issues and enhance menu display ([@matt-edmondson](https://github.com/matt-edmondson))
- Extract nested class `InputState` into its own file to improve code organization and maintainability. Updated derived cursor rules to prohibit nested classes, enhancing adherence to best practices. Cleaned up `HistoryInput.cs` by removing the nested class definition. ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor test coverage execution in CI workflow to enhance reliability and usability ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix duplicate menu item and message display in batch processing ([@matt-edmondson](https://github.com/matt-edmondson))
- Implement GenerateUnifiedDiffFromContent method and enhance DiffPlexDiffer functionality ([@matt-edmondson](https://github.com/matt-edmondson))
- Update authors and copyright information, enhance project descriptions, and refine package dependencies ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor ConsoleApplicationService and CLI components for improved organization and functionality ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance security in FileFinder and improve error handling in DiffPlexDiffer ([@matt-edmondson](https://github.com/matt-edmondson))
- Update coverage reporting and SonarQube integration in CI workflow ([@matt-edmondson](https://github.com/matt-edmondson))
- Update file similarity calculation in IterativeMergeOrchestrator to use file system parameter ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor loop patterns in BatchOperationsMenuHandler and AsyncFileDiffer for improved clarity and performance ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor file comparison and UI handling for improved maintainability ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor coverage collection in .NET CI workflow to use dotnet-coverage tool ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor Invoke-DotNetTest function to streamline command execution ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor BatchProcessor to streamline parameter handling and enhance user feedback ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor ConsoleApplicationService methods to be static and pass instance as parameter ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance whitespace visualization and improve diff display functionality ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix regex timeout vulnerability in FileFinder service ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix failing tests and improve coverage for file processing and diffing functionality ([@matt-edmondson](https://github.com/matt-edmondson))
- Add batch processing functionality and command line options ([@matt-edmondson](https://github.com/matt-edmondson))
- Update test command in `Invoke-DotNetTest` to use simplified coverage collection name ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor methods in BlockMerger and CharacterLevelDiffer to reduce cognitive complexity and improve readability ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor side-by-side diff processing for improved accuracy and clarity ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor code for improved maintainability and reduced complexity ([@matt-edmondson](https://github.com/matt-edmondson))
- Add troubleshooting documentation for CI build error related to unused using directives ([@matt-edmondson](https://github.com/matt-edmondson))
- Add SonarQube integration to CI workflow ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor side-by-side diff processing to enhance accuracy and clarity ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor loop in BatchOperationsMenuHandler for improved readability ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance console application encoding settings ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor coverage collection in Invoke-DotNetTest function and update CI workflow ([@matt-edmondson](https://github.com/matt-edmondson))
- Implement comprehensive batch management system with CRUD operations ([@matt-edmondson](https://github.com/matt-edmondson))
- Implement AsyncLocal-based FileSystemProvider for improved test isolation and concurrency handling ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor logging messages in .NET CI workflow for clarity ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor side-by-side diff processing to enhance accuracy and context display ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance coverage reporting and CI workflow for SonarQube integration ([@matt-edmondson](https://github.com/matt-edmondson))
- Update using directives in CompareFilesMenuHandler and BatchProcessor for consistency ([@matt-edmondson](https://github.com/matt-edmondson))
- Implement navigation stack for improved user experience in menu handling ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor exception handling in ShowDetailedFileList method ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix escaping in `Invoke-DotNetTest` for coverage report command ([@matt-edmondson](https://github.com/matt-edmondson))
- Add code coverage analysis report for new code ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance security and improve side-by-side diff functionality ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance test coverage execution in CI workflow and PSBuild.psm1 ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor FileFinder and WhitespaceVisualizer for improved readability and reduced cognitive complexity ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance iterative merge file path display for clarity ([@matt-edmondson](https://github.com/matt-edmondson))
- Code Cleanup ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance batch processing with search paths and exclusion patterns ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor IterativeMergeOrchestrator to enforce non-nullable file system parameter ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.20 (patch)

Changes since v1.0.19:

- Refactor variable declarations to use explicit types in multiple files ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.19 (patch)

Changes since v1.0.18:

- Enhance error handling in changelog generation ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.18 (patch)

Changes since v1.0.17:

- Enhance error handling in PSBuild.psm1 for changelog generation ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.17 (patch)

Changes since v1.0.16:

- Enhance error handling in PSBuild.psm1 and update derived cursor rules ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.16 (patch)

Changes since v1.0.15:

- Enhance build script to respect release flags for package publishing and GitHub releases ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.15 (patch)

Changes since v1.0.14:

- Fix build errors and improve code quality ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor command line handling to use CommandLineParser library ([@matt-edmondson](https://github.com/matt-edmondson))
- Split classes into their own files and convert to records ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance derived cursor rules and update test structures ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.14 (patch)

Changes since v1.0.13:

- Update YAML schema references in Winget manifests for consistency ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.13 (patch)

Changes since v1.0.12:

- Add YAML schema references to Winget manifests ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.12 (patch)

Changes since v1.0.11:

- Update Winget manifests to version 1.10.0 and add .NET Desktop Runtime dependency ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.11 (patch)

Changes since v1.0.10:

- Fix winget installer executable name in manifests and update PowerShell script for future compatibility ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.10 (patch)

Changes since v1.0.9:

- Add GitHub token to Winget manifests update step ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.9 (patch)

Changes since v1.0.8:

- Add release upload command for Winget manifests ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.8 (patch)

Changes since v1.0.7:

- Adjust publishing settings in Invoke-DotNetPublish function by disabling trimming for output files. This change aims to improve compatibility for self-contained applications. ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.7 (patch)

Changes since v1.0.6:

- Optimize publishing settings in Invoke-DotNetPublish function by enabling trimming for smaller output files. This change enhances the build process for self-contained applications. ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.6 (patch)

Changes since v1.0.5:

- Update SDK versions in global.json to 1.38.0 ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.5 (patch)

Changes since v1.0.4:

- Fix issue trying to submit release twice ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.4 (patch)

Changes since v1.0.3:

- Update ktsu SDK versions in global.json from 1.35.0 to 1.36.0 for all components. ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.3 (patch)

Changes since v1.0.2:

- Prepare BlastMerge for winget distribution by enhancing project configuration, consolidating publish functionality, and integrating winget manifest updates. Update the `Invoke-DotNetPublish` function to streamline publishing for all platforms and architectures, ensuring SHA256 hashes are generated for integrity verification. Create scripts for automating winget manifest updates and include necessary files for distribution. ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.3-pre.1 (prerelease)

Incremental prerelease update.
## v1.0.2 (patch)

Changes since v1.0.1:

- Rename to BlastMerge ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.1 (patch)

Changes since v1.0.0:

- Refactor test suite to utilize Testable.IO.Abstractions for improved file access testing ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor tests to utilize mock file system and improve file handling ([@matt-edmondson](https://github.com/matt-edmondson))
## v1.0.0 (major)

- Refactor choice handling in CLI to use Contains method for user input ([@matt-edmondson](https://github.com/matt-edmondson))
- Update documentation and enhance primary feature focus for cross-repository synchronization ([@matt-edmondson](https://github.com/matt-edmondson))
- Add cursor ignore file and update runsettings for parallel test execution ([@matt-edmondson](https://github.com/matt-edmondson))
- Implement error handling for concurrent interactive functions in Spectre.Console ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor diffing functionality to fully integrate LibGit2Sharp ([@matt-edmondson](https://github.com/matt-edmondson))
- Integrate LibGit2Sharp for enhanced diffing functionality ([@matt-edmondson](https://github.com/matt-edmondson))
- Remove redundant standalone test files and cleanup ([@matt-edmondson](https://github.com/matt-edmondson))
- Add debug test files and enhance FileDiffer functionality ([@matt-edmondson](https://github.com/matt-edmondson))
- Initial commit for DiffMore ([@matt-edmondson](https://github.com/matt-edmondson))
- Add LibGit2Sharp integration documentation and tests ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor FileDiffer logic and enhance debug test output ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor test files to remove unnecessary using directives and enhance empty file handling in diff algorithm ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance interactive merge display to show context for conflicts ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance debug test and FileDiffer functionality ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor conflict display in iterative merge mode to reduce excessive blank lines ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix null reference warnings and improve test file structure ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor input handling to improve command history functionality ([@matt-edmondson](https://github.com/matt-edmondson))
- Add missing cases suppression for ProcessSpecialKey method ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor MakeConflictColumnLayout for improved clarity and performance ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix test implementations and enhance static class usage ([@matt-edmondson](https://github.com/matt-edmondson))
- Replace LibGit2Sharp with DiffPlex for enhanced diffing functionality ([@matt-edmondson](https://github.com/matt-edmondson))
- Initial version ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor FileDiffer and update test files for improved compatibility ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance iterative merge process and improve diff display functionality ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance debug test and implement TUI for DiffMore CLI ([@matt-edmondson](https://github.com/matt-edmondson))
- Update derived cursor rules and refine CLI input handling ([@matt-edmondson](https://github.com/matt-edmondson))
- Implement manual block selection for merge conflicts ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor test project to resolve package conflicts and enhance mock filesystem compatibility ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor input handling and improve code quality ([@matt-edmondson](https://github.com/matt-edmondson))
- Remove obsolete test files and sample application from the DiffMore project, including test1.txt, test2.txt, and related scripts. ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor test implementations and enhance static class usage ([@matt-edmondson](https://github.com/matt-edmondson))
- Implement command history functionality in DiffMore CLI ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor diffing logic and improve test coverage for core library ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance iterative merge functionality and improve user interface ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance LibGit2Sharp integration for improved diffing functionality ([@matt-edmondson](https://github.com/matt-edmondson))
- Update derived cursor rules documentation and address unnecessary using directives ([@matt-edmondson](https://github.com/matt-edmondson))
- Add directory comparison functionality and enhance test helper methods ([@matt-edmondson](https://github.com/matt-edmondson))
- Fix prologue context display in side-by-side diffs ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance derived cursor rules and update FileDiffer logic ([@matt-edmondson](https://github.com/matt-edmondson))
- Implement iterative merge feature for multiple file versions ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance interactive merge functionality to display conflicts side by side ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance derived cursor rules documentation and add directory comparison guidelines ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance exception handling in test cleanup and update collection types ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor conflict resolution display and update editorconfig settings ([@matt-edmondson](https://github.com/matt-edmondson))
- Refactor diffing functionality to integrate LibGit2Sharp and enhance performance ([@matt-edmondson](https://github.com/matt-edmondson))
- Update Directory.Build.props and refine CLI input handling ([@matt-edmondson](https://github.com/matt-edmondson))
- Add SpecStory configuration and enhance project structure ([@matt-edmondson](https://github.com/matt-edmondson))
- Enhance error handling and improve interactive function management ([@matt-edmondson](https://github.com/matt-edmondson))
- Update test project dependencies and refactor test classes for mock filesystem compatibility ([@matt-edmondson](https://github.com/matt-edmondson))
- Remove project reference to DiffMore.Core in CLI project ([@matt-edmondson](https://github.com/matt-edmondson))