プロジェクトのレイアウト:
/project_a
/shared
/project_b
/shared
/shared
project_aとproject_bの両方に共有フォルダーが含まれている必要があります。svnでは、(相対パスも使用して)サブディレクトリを参照できるため、正常に機能するsvn:externalsandを使用しました。ただし、gitに移行したため、サブディレクトリのチェックアウトはサポートされていないようです。
私たちの解決策は、project_a、project_b、共有をすべて異なるgitリポジトリに配置し、project_aとproject_bでgitサブモジュールを使用することです。ただし、これはsvn:externalsを使用した1つのモノリシックsvnリポジトリよりもはるかに複雑に見えます。gitで一般的な要素を処理する正しい方法は何ですか?
編集:コンセンサスは、サブモジュールが進むべき道であるということです。しかし、それを1日使用したので、使用するのは非常に不親切に思えます。
共有内のファイルに変更を加えた後、次のことを行う必要があります。
- 共有で変更をコミットします
- シェアの変更をプッシュ
- 親ディレクトリに共有ディレクトリを再度追加します
- 親ディレクトリをプッシュする
svnでの単一のコミットと比較すると、これははるかに複雑に思えます。そして、これらのステップの1つが欠落していると、バージョン管理が大幅に混乱します。ここで何かが足りませんか?