これを行うには複数の方法があります。
- サブリポジトリの使用
- 複数のリポジトリの使用
- ???
とにかく、既存のリポジトリを再構築して分割する必要があるため、このプロジェクトに多くの人が取り組んでいる場合、これは大混乱を引き起こします.リストラ。
複数のリポジトリを使用する 1 つの方法は、次のようにすることです。
- リポジトリの追加のクローンを 2 つ作成します (すべてが失敗した場合のフォールバック用に 1 つ残しておきます。いつでも元に戻すことができます)。
hg convert
請負業者がアクセスしてはならないすべての断片を取り除くためにコマンドを実行する必要がある最初のクローン
- 次に、そのリポジトリが単独で機能するように修正します。存在しないものの、ビルドする前にプロジェクトに挿入する予定のフックとイベントを提供するために、コードを変更する必要がある場合があります。
hg convert
次に、最初のクローンに存在するすべてのものを取り除くために、他のクローンで実行する必要があります。
- 次に、最初の (契約者) リポジトリから 2 番目の (プライベート) リポジトリにプルし、マージして、コードが意図したとおりに機能するように必要な修正を行います。
現在、2 つのリポジトリがあります。
- 公開したいビットのみを含む請負業者リポジトリ
- 請負業者リポジトリからプルおよびマージされ、他のすべての小片を含むプライベートリポジトリ
これからは、請負業者が作業を自分のリポジトリにプッシュするたびに、そこからプライベート リポジトリにプルしてからマージする必要があります。
リポジトリは次のようになります。
Contractor: ---97---98---99---100---102---103---104
M M
Private: ---91---92---93---94---95---96---101---105---106---107
/ /
/ /
---97---98---99---100---102---103---104
上記の M の付いた 2 つの変更セットは、請負業者が提供したコードをプライベート リポジトリにマージするマージ変更セットです。
あなたも請負業者リポジトリにコードをコミットし、そこでコードのバグを修正して作業する必要があることに注意してください。