You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.en.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -101,6 +101,7 @@ Relation to CI:
101
101
- Uses `ILoggerService` (`LoggerService` implementation) via DI; the log file path is exposed through the read-only `LogFileAbsolutePath` property.
102
102
-`Program` builds dependencies with `ServiceCollection` and resolves `ConfigService` / `FolderDiffService` / `ReportGenerateService` instead of directly constructing them with `new`.
103
103
- Writes per-bucket listings to `Reports/<report label>/diff_report.md`; paths are relative for `Unchanged`/`Modified` and absolute for `Added`/`Removed`.
104
+
-`ReportGenerateService.GenerateDiffReport` is split into private section writers (header/legend/body/summary) to improve readability and maintenance.
104
105
- For `ILMatch` / `ILMismatch`, the report also includes the disassembler tool and version used (including cache hits).
105
106
- Summarizes counts per bucket in the same report.
106
107
- The report header lists only the disassembler labels actually observed during IL comparison (or `N/A` when not used).
@@ -111,7 +112,7 @@ Relation to CI:
111
112
112
113
1.**MD5 hash** – if hashes match, the file is `Unchanged (MD5Match)`.
113
114
2.**IL diff** – if the file is a .NET assembly (detected via PE/CLR headers, regardless of extension), the app disassembles both versions with the same disassembler/version identity, strips `// MVID:` lines, and compares them line by line. If `ShouldIgnoreILLinesContainingConfiguredStrings` is enabled, lines containing any entry in `ILIgnoreLineContainingStrings` are also ignored (substring match). Matches become `Unchanged (ILMatch)`; mismatches become `Modified (ILMismatch)`.
114
-
3.**Text diff** – if the extension appears in `TextFileExtensions`, a line-based text diff runs. Matches are `Unchanged (TextMatch)`; mismatches are `Modified (TextMismatch)`.
115
+
3.**Text diff** – if the extension appears in `TextFileExtensions` (checked with `StringComparison.OrdinalIgnoreCase`), a line-based text diff runs. Matches are `Unchanged (TextMatch)`; mismatches are `Modified (TextMismatch)`.
115
116
4.**Fallback** – remaining files are treated as `Modified (MD5Mismatch)`.
116
117
117
118
## Configuration (`config.json`)
@@ -218,7 +219,7 @@ Place `config.json` next to the executable. Example:
218
219
| Key | Description |
219
220
| --- | --- |
220
221
|`IgnoredExtensions`| Excludes matching extensions from comparison (e.g., `.pdb`). |
221
-
|`TextFileExtensions`| Treats matching extensions as text, diffed line by line. Include the dot (e.g., `.cs`, `.json`). |
222
+
|`TextFileExtensions`| Treats matching extensions as text, diffed line by line. Include the dot (e.g., `.cs`, `.json`). Matching is case-insensitive (`StringComparison.OrdinalIgnoreCase`). |
222
223
|`MaxLogGenerations`| Number of log files kept in rotation. |
223
224
|`ShouldIncludeUnchangedFiles`| Whether to list `Unchanged` files inside `Reports/<label>/diff_report.md`. |
224
225
|`ShouldIncludeIgnoredFiles`| Whether to output ignored files in the `## [ x ] Ignored Files` section (before `Unchanged`). |
0 commit comments