私は3つのことを設定しようとしています:
- パブリック SVN リポジトリのパブリック GIT ミラー
- 複数の貢献者がパッチをステージングできる、そのレポの公開フォーク
- #2 からのパブリック リポジトリのプライベート フォーク
#1 のやり方は知っていますが、#2 と #3 についてのアドバイスを探しています: 構成方法、同期を維持する方法、避けるべきことなど。
詳細は次のとおりです。
私が使用している SVN ベースのオープンソース Web アプリケーションのパッチ送信メカニズムは遅くて非効率的です。問題追跡システムに送信されたバグにパッチが添付され、数週間または数か月後にそれらのパッチがトランクに入れられます。
別の問題は、私の会社だけが必要とする追加機能を備えたプロジェクトのプライベート フォークを維持する必要があることです。しかし、フォークがトランクからの最新の公式コミットを最新の状態に保つ簡単な方法が必要です。
これらの問題の両方に対する GitHub ベースのソリューションを見つけたいと思います。締めくくりたいのは以下の3点です。
- 「ミラー」 - SVN の GitHub ミラー。私または別のパッチ提供者が実行する自動化されたプロセス (この記事のような) を介して、最新の SVN の変更と自動的に同期されます。これにより、SVN をいじることなく、私や他の誰かがプロジェクトのパブリックまたはプライベート フォークを簡単に作成できるようになります。
- 「contrib」 - 私自身と信頼できる数人のパッチ提出者のために、「ミラー」のパブリック フォーク (またはブランチ?) をセットアップして、最終的に SVN に表示されるようにしたいパッチをコミットできるようにしたいと考えています。これにより、コア コミッターがパッチを SVN に戻すのがより簡単かつ効率的になる可能性もあります。
- "ourfork" - 最後に、私たちの会社は、複数の開発者が私たちの会社の実装にのみ適用されるプライベート機能を追加できる "contrib" のプライベート フォークをセットアップしたくないと考えています。
具体的な質問:
- アプローチは理にかなっていますか?代わりに使用すべきより簡単なソリューションはありますか?
- 「contrib」が「mirror」と同期していることを確認する方法は? 競合しない限り、新しいコミットを自動的に適用する GitHub マジックはありますか? いいえ、contrib が親と同期していることを確認するための適切なワークフローは何ですか?
- 「ourfork」は論理的には「mirror」の孫になります。「ミラー」と「contrib」の両方からの変更で最新の状態に保つための正しいワークフローは何ですか? 「contrib」を唯一のリモートとして設定する必要がありますか? または、両方をリモートとして設定します。もしそうなら、マージの正しいプロセスは何ですか?
同様の質問に対する@rqの回答を読んだところ、上記の質問のほとんどに回答していると思いますが、私はGitの初心者であり、彼の回答が私のケースに当てはまるかどうかわかりません.