Add Folder comparison mode with archive extraction support#3320
Merged
Add Folder comparison mode with archive extraction support#3320
Conversation
…w" menu (both 2-pane and 3-pane).
# Conflicts: # Src/MainFrm.cpp # Translations/Docs/Manual/French.po
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new “Folder” comparison type so users can create new folder comparisons directly from the File → New menu (2-pane and 3-pane), and exposes the same capability via command-line and Jump List tasks.
Changes:
- Add new command/resource IDs, menu items, and icons for “New Folder” (2/3 panes) and “Compare As → Folder”.
- Implement folder-compare opening flow in
CMainFrame(including temp-folder creation for “New Folder”). - Update command-line and manual translations/docs to include
/t folderas a valid window type.
Reviewed changes
Copilot reviewed 31 out of 72 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| Translations/Docs/Manual/Japanese.po | Updates manual translation strings to mention Folder window type. |
| Translations/Docs/Manual/Italian.po | Updates manual translation strings to mention Folder window type (plus reflow). |
| Translations/Docs/Manual/Hebrew.po | Updates manual translation strings to mention Folder window type. |
| Translations/Docs/Manual/French.po | Updates manual translation strings to mention Folder window type and rewraps the entry. |
| Translations/Docs/Manual/English.pot | Adds Folder to the /t window-type description source string. |
| Src/resource.h | Adds IDs for folder compare/menu items/icon + adjusts ID ranges to include folder compare. |
| Src/res/new_folder.bmp | Adds bitmap resource for “New Folder” menu icon. |
| Src/WebPageDiffFrm.cpp | Extends “Recompare As” command/UI ranges to include folder compare. |
| Src/PropShell.cpp | Adds “New Folder Compare” to user task selection list. |
| Src/OpenView.cpp | Extends compare command/UI ranges to include folder compare. |
| Src/MergeDoc.cpp | Extends “Recompare As” command range to include folder compare. |
| Src/MergeCmdLineInfo.h | Adds FOLDER window type + user task flag for folder compare. |
| Src/MergeCmdLineInfo.cpp | Parses /t folder and maps to the new window type. |
| Src/Merge2.rc | Registers IDB_FILE_NEW_FOLDER bitmap resource. |
| Src/Merge.vcxproj.filters | Adds Common\\ScopeExit.h to project filters. |
| Src/Merge.vcxproj | Adds Common\\ScopeExit.h include to the project. |
| Src/Merge.rc | Adds “New → Folder” and “Compare As → Folder” menu items + Jump List string. |
| Src/Merge.cpp | Adds Jump List user task entry for “New Folder Compare”. |
| Src/MainFrm.h | Adds ShowDirDoc(...) declaration and temp-folder lifetime storage. |
| Src/MainFrm.cpp | Implements ShowDirDoc(...) and “New Folder” temp-folder creation in DoFileNew. |
| Src/ImgMergeFrm.cpp | Extends “Recompare As” command/UI ranges to include folder compare. |
| Src/HexMergeDoc.cpp | Extends “Recompare As” command/UI ranges to include folder compare. |
| Src/DirView.cpp | Extends “Compare As” command/UI ranges to include folder compare; minor context-menu flow change. |
| Src/DirDoc.cpp | Uses pane description as title when provided (useful for “Untitled” folder panes). |
| Src/Common/ScopeExit.h | Adds a local scope_exit helper for scoped cleanup. |
| Src/7zCommon.h | Declares Merge7zInit(). |
| Src/7zCommon.cpp | Defines Merge7zInit() that resets the thread-local Merge7z proxy. |
| Docs/Manual/Japanese/Command_line.xml | Updates Japanese manual to include Folder keyword. |
| Docs/Manual/Italian/Command_line.xml | Updates Italian manual to include Folder keyword. |
| Docs/Manual/Hebrew/Command_line.xml | Updates Hebrew manual to include Folder keyword. |
| Docs/Manual/French/Command_line.xml | Updates French manual to include Folder keyword. |
| Docs/Manual/English/Command_line.xml | Updates English manual to include Folder keyword. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
# Conflicts: # Translations/Docs/Manual/French.po
Marcellomco
added a commit
to Marcellomco/winmerge
that referenced
this pull request
Apr 19, 2026
Added translation for "Add Folder comparison mode with archive extraction support (WinMerge#3320)"
Merged
Merged
sdottaka
pushed a commit
that referenced
this pull request
Apr 19, 2026
Added translation for "Add Folder comparison mode with archive extraction support (#3320)"
sdottaka
added a commit
that referenced
this pull request
Apr 23, 2026
* Doc - Italian language - Updated (#3319) * Update Italian.po * Fix issue #3321: [BUG] Incorrect string used with beta releases * Show error message when entering path in header bar (#3322) * Prioritize explicitly selected plugins over archive detection (#3324) * Prioritize explicitly selected plugins over archive detection * Update Src/7zCommon.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update Src/7zCommon.cpp --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Use 7-Zip IsArc API for archive detection and refactor format guessing logic (#3323) * Use 7-Zip IsArc API for archive detection and refactor format guessing logic * Update ArchiveSupport/Merge7z/Merge7zCommon.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Restore extension-only fallback in GuessFormatEx and handle NEED_MORE result Agent-Logs-Url: https://github.com/WinMerge/winmerge/sessions/47af4d0f-fc0a-4e33-ab81-8ec95c0f599e Co-authored-by: sdottaka <98126+sdottaka@users.noreply.github.com> * Use 7-Zip IsArc API for archive detection and refactor format guessing logic (2) * Use 7-Zip IsArc API for archive detection and refactor format guessing logic (3) * Prioritize explicitly selected plugins over archive detection * Update Src/7zCommon.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update Src/7zCommon.cpp * Update Merge7zCommon.cpp --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: sdottaka <98126+sdottaka@users.noreply.github.com> * Merge7z: Bump revision to 2600.1 * Merge7z: Bump revision to 2600.1 (2) * Update French Manual (#3325) * Refactor: unify open parameters and move recurse to OpenFolderParams (#3326) * Update Manual/French.po * Refactor: unify open parameters and move recurse to OpenFolderParams (#3326) (2) (cherry picked from commit 83af229) * Add Folder comparison mode with archive extraction support (#3320) * Update Manual/French.po * Update Brazilian.po (#3328) Added translation for "Add Folder comparison mode with archive extraction support (#3320)" * Update German.po (#3329) * update zh-cn translation (#3331) * Update Turkish.po (#3333) New string entries * Update Korean (#3334) * Code review fixes for 5 oldest source files#3327 #1 * Code review fixes for 5 oldest source files#3327 #2 * Update Turkish.po * Update TranslationsStatus * Update ChangeLog&ReleaseNotes * Italian language (#3335) * Stabilize tree-sitter highlight precedence Make overlapping captures resolve deterministically so syntax colors stay consistent across panes and languages. Also accept local.* capture prefixes so newer query conventions keep local symbol highlighting working. * Unify tree-sitter block ordering Use one parser-wide block order counter so injected-language highlights cannot collide with primary highlight ordering when the final precedence tie-breaker runs. --------- Co-authored-by: bovirus <1262554+bovirus@users.noreply.github.com> Co-authored-by: Takashi Sawanaka <sdottaka@users.sourceforge.net> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: sdottaka <98126+sdottaka@users.noreply.github.com> Co-authored-by: t3chnob0y <t3chnob0y@users.noreply.github.com> Co-authored-by: Marcellomco <70959309+Marcellomco@users.noreply.github.com> Co-authored-by: René T. Nicolaus <12006431+Havoc7891@users.noreply.github.com> Co-authored-by: YG <1246410+yingang@users.noreply.github.com> Co-authored-by: bilimiyorum <131397022+bilimiyorum@users.noreply.github.com> Co-authored-by: VenusGirl❤ <venusgirl@outlook.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add Folder comparison mode with automatic archive extraction via 7-Zip.
Details
/t folderand "New Folder"Screenshots
New menu (Folder option)
Compare As (Archive option)