WinMerge
WinMerge 是一款适用于 Windows 的开源差异对比和合并工具。WinMerge 可以比较文件和文件夹,以易于理解和操作的可视化格式呈现差异。
构建要求
Visual Studio 2017
- 社区版、专业版或企业版
- VC++ 2017 最新 v141 工具
- Visual C++ 编译器和库(ARM、ARM64)
- C++ Windows XP 支持
- Visual C++ MFC(x86 和 x64、ARM、ARM64)
- Visual C++ ATL(x86 和 x64、ARM、ARM64)
- Windows 10 SDK
Visual Studio 2019
- 社区版、专业版或企业版
- MSVC v142 - VS 2019 C++(x64/x86、ARM、ARM64)构建工具(最新版)
- 适用于最新 v142 构建工具的 C++ MFC(x86 和 x64、ARM、ARM64)
- 适用于最新 v142 构建工具的 C++ ATL(x86 和 x64、ARM、ARM64)
- Windows 10 SDK
Visual Studio 2022
- 社区版、专业版或企业版
- MSVC v143 构建工具(x64/x86、ARM、ARM64)
- 适用于最新 v143 构建工具的 C++ MFC(x64/x86、ARM、ARM64)
- 适用于最新 v143 构建工具的 C++ ATL(x64/x86、ARM、ARM64)
- Windows 10 SDK
其他实用程序/软件
- git
- Inno Setup 5.x 和 6.x
- 7-Zip
- Python
- Pandoc
- MSYS2 和 MSYS2 软件包(po4a 和 diffutils)
如何构建
git clone --recurse-submodules https://github.com/WinMerge/winmerge
cd winmerge
DownloadDeps.cmd
BuildAll.vs2022.cmd [x86|x64|ARM|ARM64] 或 BuildAll.vs2019.cmd [x86|x64|ARM|ARM64] 或 BuildAll.vs2017.cmd [x86|x64|ARM|ARM64]
文件夹结构
WinMerge 程序、插件、过滤器、安装程序和各种实用工具的源代码都保存在下面列出的子文件夹中。
更新日志文件位于 Docs/Users/ChangeLog.md
,记录了用户可见的和重要的变更。
子文件夹包括:
-
Docs
用户和开发者文档,位于不同的子文件夹中。 可以通过打开Docs
文件夹中的index.html
进行浏览。 -
Src
WinMerge 程序本身的源代码。 -
Plugins
WinMerge 运行时插件 DLL 和脚本的源代码和二进制文件。 -
Filters
随发行版一起提供的 WinMerge 文件过滤器。 -
ArchiveSupport
Merge7z DLL 的源代码,用于连接 WinMerge 和 7-Zip。 编译WinMergeU.exe
也需要此文件夹。 还有一个 Merge7z DLL 的独立安装程序。 -
Externals
此文件夹包含几个源自 WinMerge 项目外部的库。 为了方便构建和可能需要对 WinMerge 进行小的修改,它们存储在这里。 库包括 XML 解析器和正则表达式解析器。 -
Installer
WinMerge 的安装程序。 -
Tools
WinMerge 开发人员使用的各种实用工具;请参阅每个工具中的自述文件。 -
ShellExtension
Windows Shell(资源管理器)集成。 为资源管理器上下文菜单添加用于比较文件和文件夹的菜单项。 -
Testing
一套测试差异文件和运行它们并报告结果的脚本。 该文件夹还有一个Google Test
子文件夹,其中包含使用 Google Test Framework 编写的单元测试。 -
Build
编译 WinMerge 时由编译器创建的文件夹。 它包含编译后的可执行文件、库、用户手册等。 -
BuildTmp
编译 WinMerge 时由编译器创建的文件夹。 它包含编译过程中创建的临时文件,可以安全删除。
如何贡献
你需要 fork 主 Winmerge 仓库并在该 fork 上创建一个分支
你的新代码需要遵循 Eric Allman 缩进风格
当你的代码准备好进行审查/合并时,创建一个拉取请求,解释你所做的更改
如何运行和调试
winmerge 文件夹中有不同的 Visual Studio 解决方案文件(.sln),你可以使用它们来构建、调试和运行,同时测试你的更改
如果你已运行任何 BuildAll 脚本,你可以从路径 \Build\X64\Release\WinMergeU.exe
运行 WinMerge
如果你的架构不是 X64
,请查看构建完成后生成的其他文件夹
另一种调试方法是先运行上一步中的 exe,然后从 VS 附加到正在运行的进程。