我有一个名为“模拟器”的平台中立的 Mercurial 代码仓库
并希望在构建之前应用针对特定平台优化的补丁。
根据指南,我们可以通过使用带有防护的补丁来实现这一点。
- Windows Experimental.patch +windows
- Unix Experimental.patch +unix
- Mac Experimental.patch +mac
但是它开始变得很麻烦,因为我们的补丁队列包含 100 多个补丁,命名为 windows-memory-optimization.patch +windows、unix-memory-optimization.patch +unix、windows-io-experimental-bug-fix.patch +windows、等等等等。我们在系列文件中将其组织为组,但文件变得越来越大,使用 qseries / qapplied 变得难以管理
相反,我们希望为 windows、unix 和 mac 设置一个队列。
因此,补丁可以组织为:
- Windows 补丁堆栈:memory-opt.patch、io-opt.patch 等
- Unix 补丁栈:disk.patch、graphics.patch 等
- Mac 补丁堆栈:io-fix.patch、io-opt.patch、experimental.patch 等
然后交换每个平台的补丁堆栈进出模拟器存储库。这样我就可以处理 windows 补丁堆栈并弹出/推送各种子系统优化补丁,并独立于 unix 或 mac 补丁堆栈来处理它们。
看起来我做不到,除了针对每个平台制作 3 个不同的 repos 并以这种方式维护补丁堆栈。
除了手动将 .hg/patches 目录复制进出仓库之外,还有其他方法可以完成“交换”补丁堆栈吗?