コードの大部分を共有するが、すべてではない一連の製品を作成しているとします (たとえば、複数のフロント エンドを持つアプリケーション: コマンド ライン、Windows/MAC/Linux GUI、モバイル (最小限の) GUI、Web GUI など)。 .)
さらに、共有コードを簡単に分割して「ライブラリ化」することはできません。
さまざまな製品に Mercurial という名前のブランチ (例: ブランチ: CLI、Windows、MAC、Linux、Mobile、Web) またはコード内のコンパイル フラグ (例#if (FRONT_END == CLI) #elif (FRONT_END == WEB) ...
) を使用することを検討しています。
どちらのアプローチにも満足していません。ここに私の不満があります:
名前付きブランチ:
- 共有コードの一部を変更した場合、それをすべてのブランチとマージする必要があります。これを(半)自動的に行う hg コマンドはありますか?
- 特定の機能がすべてのブランチでどのように実装されているかを確認するのは簡単ではありません (コードの 1 つの領域の違いを視覚化します)。
コンパイル フラグ:
- コードの混乱
- 暗黙的なブランチのリビジョン履歴はありません。手動で行う必要があります (影響を受ける製品を示すメッセージをコミットします)
あなたは提案できますか:
- 私の不安を和らげる方法は?
- 別の視点
- 2 つのアプローチを組み合わせるエレガントな方法
ありがとう