Visual Studio 2010(C#版)で開発し、もう少し前にSVNからGITに移行しました。今では、リポジトリ(かなり大きい - 〜30.000個のファイル)を複数のgitリポジトリに分割しようとしています。 このソリューションはいくつかのプロジェクトを共有しています。ほとんどの場合、社内で開発し、すべてのソリューションから追加するライブラリです。異なるレイアウトのVisual StudioソリューションでGitサブモジュールを処理するにはどうすればいいですか?
新しいリポジトリのレイアウトはフラットです。各プロジェクトの1つのサブディレクトリ(共有プロジェクトはサブモジュールです)。 大きな古いレポでは、プロジェクトはツリー構造になっています。
問題は、サブモジュールの外部参照で発生します。新しいリポジトリでは、参照されたプロジェクトへのパスは "...... libs \ someproject"になりますが、新しいレイアウトでは正しいパスは ".. \ someproject"になります。
私たちはすでにこれに関するいくつかの編集戦争をしており、もっと熱心ではありません。私は考えることができ
半焼きたてのソリューション:
- 中... csproj.user
使用「参照パス」とバージョン管理からこのファイルを除外する(各開発者のために、それぞれの後にやり直す必要がありますreopsitoryクリーンアップ)
使用のそれぞれの状況についての支店及び(サブモジュールは、すでに最も単純な概念ではない「本物」のコミットは行くべきと「環境の変化」は、コミットが行くべき場所をみんなに教えしよう...)
はサブモジュールの代わりにバイナリを埋め込んでいます(しかし、サブモジュールへの変更をどうやって開発するのでしょうか?どのような異なるlog4netのバージョンは?)
誰もがまともな解決策を知っていますか?
私は、あなたが合理的な依存関係管理を使ってソースインクルージョンからDLLインクルードへ移行することを暗示していると思います。そうであれば、それは魅力的なように聞こえますが、今私たちは包括的なソリューションの一部として共有ライブラリを開発しています。問題を解決するためにかなり重い方法と思われる。 – plaugg
私が理解したように、彼らは別々のVSプロジェクトですが、それは実現可能性の点で問題を引き起こすべきではありませんが、実際にはあなたが探しているかもしれない速いハックではありません...もしあなたがデバッグを心配しているなら、デバッグの経験を維持するためにシンボルソースサーバーにリンクしていますが、メインプロジェクトとサポートプロジェクトの間に多くの行き来がある場合、これは問題になる可能性があります。私は少し躊躇しています。 gitサブモジュールの優雅さの欠如と私はあなたがリストしなかった代替案を提案したいと思っていました(バージョン管理もサポートしています)。 – Dirk
私はまだチームとして.NETで作業していたときに、このオプションが利用できないことを少し悲しんでいます。依存関係については、Visual Studioは愚かであることが知られています。このアプローチには多くの利点があります。しかし、私にとって最も重要なのは、開発者の視点から見れば、プロジェクトのセットアップ、コンパイル、プログラムの迅速化です。私が新しいプロジェクトをチェックアウトするときには、必要なすべてのライブラリを取得するだけで、プロジェクトライブラリをコンパイルして実行するだけです。それだけでなく、プロジェクトをもっと理解しやすくするために、これらのサブプロジェクトの混乱があります。 – SpoBo