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
+8-2Lines changed: 8 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# FolderDiffIL4DotNet (English)
2
2
3
-
This repository hosts a .NET console application that compares two folders, classifies the differences, and writes a detailed Markdown report. When both inputs are .NET assemblies, the app ignores build-specific artifacts such as the `// MVID:` line, so assemblies that behave the same are treated as equal even if they were produced at different times.
3
+
This repository hosts a .NET console application that compares two folders, classifies the differences, and writes a detailed Markdown report. When both inputs are .NET assemblies, the app ignores build-specific artifacts such as the `// MVID:` line, so assemblies that behave the same are treated as equal even if they were produced at different times. You can also configure additional "contains" filters to ignore lines that include specific strings (for example `buildserver`).
4
4
5
5
> Looking for the Japanese version? See [README.md](README.md).
6
6
@@ -75,12 +75,13 @@ Relation to CI:
75
75
- For `ILMatch` / `ILMismatch`, the report also includes the disassembler tool and version used (including cache hits).
76
76
- Summarizes counts per bucket in the same report.
77
77
- The report header lists only the disassembler labels actually observed during IL comparison (or `N/A` when not used).
78
+
- If `ShouldIgnoreILLinesContainingConfiguredStrings` is enabled, the report header explicitly notes that lines containing values from `ILIgnoreLineContainingStrings` are ignored.
78
79
- Optionally writes ignored files, unchanged files, timestamps, and warnings when at least one `MD5Mismatch` exists.
79
80
80
81
## File comparison flow
81
82
82
83
1.**MD5 hash** – if hashes match, the file is `Unchanged (MD5Match)`.
83
-
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. Matches become `Unchanged (ILMatch)`; mismatches become `Modified (ILMismatch)`.
84
+
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)`.
84
85
3.**Text diff** – if the extension appears in `TextFileExtensions`, a line-based text diff runs. Matches are `Unchanged (TextMatch)`; mismatches are `Modified (TextMismatch)`.
85
86
4.**Fallback** – remaining files are treated as `Modified (MD5Mismatch)`.
86
87
@@ -169,6 +170,8 @@ Place `config.json` next to the executable. Example:
@@ -189,6 +192,8 @@ Place `config.json` next to the executable. Example:
189
192
|`ShouldIncludeUnchangedFiles`| Whether to list `Unchanged` files inside `Reports/<label>/diff_report.md`. |
190
193
|`ShouldIncludeIgnoredFiles`| Whether to output ignored files in the `## [ x ] Ignored Files` section (before `Unchanged`). |
191
194
|`ShouldOutputILText`| Writes IL dumps to `Reports/<label>/IL/old` and `.../IL/new`. |
195
+
|`ShouldIgnoreILLinesContainingConfiguredStrings`| Whether to ignore IL lines that contain any configured string in `ILIgnoreLineContainingStrings`. |
196
+
|`ILIgnoreLineContainingStrings`| List of strings used for IL line-ignore filtering (substring match, multiple values allowed), e.g. `buildserver`. |
192
197
|`ShouldOutputFileTimestamps`| Adds last modified timestamps to each file line inside the report. |
193
198
|`MaxParallelism`| Degree of parallelism for file comparisons. `0` or omitted uses the logical core count. |
194
199
|`EnableILCache`| Caches IL disassembly results (MD5 + tool/version) in memory and optionally on disk. |
@@ -238,6 +243,7 @@ After writing the report, the following files are marked read-only (failures onl
238
243
-`Reports/<label>/IL/old/*.txt` – IL dumps (build-specific noise removed) for files from the old folder.
239
244
-`Reports/<label>/IL/new/*.txt` – IL dumps for the new folder.
240
245
- IL dumps exclude lines that start with `// MVID:`.
246
+
- If `ShouldIgnoreILLinesContainingConfiguredStrings` is `true`, IL dumps also exclude lines containing any value from `ILIgnoreLineContainingStrings`.
Copy file name to clipboardExpand all lines: README.md
+9-2Lines changed: 9 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# FolderDiffIL4DotNet
2
2
3
-
2つのフォルダの差分をレポート出力するコンソールアプリケーションです。.NET アセンブリに関してはビルド固有情報(例: MVID)が存在する場合はこれを除外して IL 比較するため、ビルド日時が異なっていても実質同じ挙動であれば同一と判定します。
3
+
2つのフォルダの差分をレポート出力するコンソールアプリケーションです。.NET アセンブリに関してはビルド固有情報(例: MVID)が存在する場合はこれを除外して IL 比較するため、ビルド日時が異なっていても実質同じ挙動であれば同一と判定します。加えて、設定により「指定文字列を含む行」を IL 比較時に無視できます。
4
4
5
5
> Need this document in English? See [README.en.md](README.en.md).
0 commit comments