さまざまなソースツリーに配置された複数のGitリポジトリをダウンロードしました。
- repoDirs1(ベンダーを含むサブディレクトリを含む)
- repoDirs2(ベンダーを含むサブディレクトリを含む)
- 特別買戻し1
- 特別買戻し2
動作するソースツリーを取得するには、次の手順を実行する必要があります。
1. cp -rp repoDirs2/* repoDirs1/
2. cp -rp specialRepos1/vendor/* repoDirs1/vendor/
3. cp -rp specialRepos2/vendor/* repoDirs1/vendor/
これは機能しますが、元のrepoDirs1ソースツリーを変更し、repoコマンドを使用してそれを管理するのが難しくなります。
検索してみると、マウントにオーバーレイオプションがあることがわかりました。しかし、いくつかの例を読んだ後でも、問題を解決するために正しいインストールコマンドシーケンスを作成する方法はまだわかりません。 overlayfsknownまたはその他の誤ったオプションエラーが発生します。
誰もが明確な例を助けることができますか?ありがとうございます。 Ubuntu 20.04を使用しています
答え1
将来の読者は注意してください。 この質問には、多くのサブディレクトリを含む2つのディレクトリをマージする必要があります。一般的なgit操作には使用しないでください。これを行うには、通常.gitignore
ファイルを試してください。子サブモジュール。
2つのディレクトリを1つの場所にマージするには、重複するファイルがある場合でも、単純なoverridefsマウントを使用できます。要求された状況では、これは読み取り専用オーバーレイで実行するのが最善です。読み書きするには、変更されたすべてのファイルを別々のディレクトリに保存します。あなたが探しているものが一致する可能性はほとんどありません。
読み取り専用オーバーライドを作成するには、upper
以下を指定しないでくださいworkdir
。
mount -t overlay overlay -o lowerdir=specialRepos1/vendor/:specialRepos2/vendor/ repoDirs1/vendor/
Archlinuxにはこの機能の良い説明があります: