私たちは組み込み ARM Linux システムを扱っており、カスタム ハードウェアを制御する SBC ベースの製品をいくつか持っています。そのため、カスタム カーネル ドライバーを開発し、場合によっては既存のドライバーを適合させる必要があります。Subversion の使用を開始して以来、「ベンダー ブランチ」を使用してバニラ カーネルを使用し続け、各製品のブランチを作成して、SBC に必要なパッチを適用し、独自の変更を加えるという戦略が選択されました。https://stackoverflow.com/q/2312984/1007502で提案されているものに非常に似ています
ありがたいことに、数か月前にプロジェクトを git に移行することを決定したため、開発チーム間でプロジェクトを共有するために gitolite サーバーをセットアップし、必要に応じて SVN からプロジェクトを移行し、git をより快適に使用できるようにしました。Linux カーネルの特殊なケースでは、リモートとして gitolite サーバーを使用してプロジェクトを開発するオプションがあることは興味深いと思いますが、公式ツリーから新しいカーネルを取得して、最終的に何か貢献できるようにしたいと考えています。それができる状態になったら元に戻します。
私自身のマシンでは、公式のカーネル ツリーを git clone して製品のプライベート ブランチを作成し、必要に応じて新しいカーネルにリベースする方法を確認できます (こちらのように)。しかし、開発者が公式のカーネルリポジトリの代わりにプッシュ/プルできるように、公式のカーネルツリーをgitoliteにインポートする方法と、後者との同期を維持する方法について少し迷っています。
これは、私たちのマシンの公式ツリーから更新を取得し、それらをプライベート gitolite サーバーにプッシュすることの問題ですか、それとももっと直接的な方法がありますか?
編集:(質問を明確にする)
主な問題は:追跡されていないコードをgitoliteにプッシュするために空のリポジトリを初期化する方法は知っていますが、公式などの別のgitリポジトリからクローンしたものに対してそれを行う方法がわかりませんカーネルツリー。
自分のマシンにそのクローンを作成したら、それをプライベート gitolite サーバーに移動する手順は何ですか?
では、この「プライベート」なカーネル ツリーを公式のカーネル ツリーと同期させるにはどうすればよいのでしょうか。
開発者はプライベート ツリーにのみプッシュし、最終的には公式ツリーにのみパッチを送信する必要があるという考えです。