「Simulator」と呼ばれるプラットフォームニュートラルなMercurialコードリポジトリがあります
ビルド前に特定のプラットフォームの最適化を対象とするパッチを適用したい。
ガイドによると、ガード付きのパッチを使用することでこれを実現できます。
- Windows Experimental.patch + windows
- Unix Experimental.patch + unix
- Mac Experimental.patch + mac
ただし、パッチキューには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つの異なるリポジトリを作成し、パッチスタックをそのように維持する以外は、それができるようには見えません。
.hg / patchsディレクトリをリポジトリに手動でコピーしたり、リポジトリからコピーしたりする以外に、パッチスタックの「交換」を実行する方法はありますか?