私の職場では、Visual Studio ソリューションを形成するために結合された多数の個別の TFS プロジェクトがあります。これらの個別の TFS プロジェクトは維持されているため、複数のソリューションでコードを再利用できます。確かに、これは悪い考えでした。分岐する必要がある場合は、各 TFS プロジェクトを個別に分岐する必要があります (これを行うためのアプリも作成しました)。最終的に、次のようなプロジェクト構造になります。
$/Production/[superproject]/MAIN
$/Production/[superproject]/dev/[branch]
$/Production/[dependency1]/MAIN
$/Production/[dependency1]/dev/[branch/
[superproject] にはソリューション内の [dependency1] が必要です。これらすべてのプロジェクトを同じワークスペースにマッピングすることになります。
日常の開発で Git を使用するために、Git-TFS を使用したいと考えています。これまでのところ、これを行うための最善の方法は、各 TFS プロジェクトのサブモジュールを含む "マスター" git リポジトリを用意することです。このようにして、を使用して分岐、差分などを行うことができgit submodule foreach
ます。
残念ながら、チェックインに関する私たちのポリシーは、変更セットが複数の TFS プロジェクトにまたがっていても、1 つのタスクに対して 1 つの変更セットを持つことです。すべての変更が 1 つの TFS プロジェクト (つまり、1 つの git サブモジュール) に制限されている場合は問題ありませんが、1 つのタスクに対して複数のサブモジュールにまたがる変更がある場合は、どうすればよいかわかりません。私の現在の計画は、それぞれを使用して個別に棚上げしgit submodule foreach 'git-tfs shelve mytask_$name'
、それぞれを TFS ワークスペースにプルして、そこからチェックインすることです。これは、私が既にマップした TFS ブランチに対してのみ機能し、そもそも Git を使用する目的の半分を無効にします。
誰かが同様の問題に遭遇しましたか? おそらくTFSコマンドラインとスクリプトを使用して、すでに解決策はありますか? そうでない場合は、git-tfs のプル リクエストの作成に時間を費やすことになると思います。そこで問題が解決されれば、Git-TF を使用することにオープンです。
よろしくお願いします。