次の問題に対して Mercurial をどのように使用しますか。
ライブラリ Core があるとします。私は今、Extension と呼ばれるそのライブラリの拡張機能を開発したいと考えています。Core を Extension から物理的に分離したいと考えています。つまり、Core がオープン ソース ライブラリであり、Extension が Core 上に構築されたプライベート ライブラリであるとします (個人的に保持したいものが含まれている可能性があります)。明らかに、Extension のソース全体をパブリック リポジトリにプッシュしたくありません。しかし一方で、特定の変更を拡張機能からコアにプッシュしたり (拡張機能の一部をコアに「寄付」することにした場合)、またはその逆 (バグ修正を組み込みたい場合など) をしたい場合があります。
特定の変更に対して柔軟に対応しながら、Extension to Core が漏洩するリスクを最小限に抑えながら (履歴が公開サーバーにプッシュされると、元に戻すことはできません!)、これについてどのように対処しますか。枝?クローン?Mqs? 他の何か?
私は現在、リポジトリのクローン作成にしか慣れていませんが、その単純さが非常に気に入っています。
編集: 私はこのスキームを思いつきましたが、ウィンドウの下で動作させることはできません。2 つのリポジトリ (コアと拡張)。Extension には、Core と extension の2 つのブランチがあります。これで、リポジトリごとに Mercurial のフックを登録できるので、Mercurial bookで説明されているように、Extension ブランチからのチェックインを禁止する「pretxnchangegroup」フックを Core リポジトリに登録したいと思います。ただし、ウィンドウの下で機能することはあまりありません。そう:
- 誰かがウィンドウの下でこのような例(実際、トランザクションの結果を変更するフック)を持っていますか?
- 移植を使用して、Extension から Core ブランチへの変更をチェリーピックすることはできますよね?