残念ながら、ソース管理に TFS/TFVC を使用している組織の一員です。私の小さなチームは、git を使用して一種の「概念実証」を実行する任務を負っていますが、変更を TFS にプッシュできるようにする必要があります。幸いなことに、git-tf と git-tfs が存在します。ただし、TFS リポジトリは、20 以上の異なるプロジェクト/アプリケーションを含む 1 つのモノリシック リポジトリです。git でこれを行う適切な方法は、各プロジェクトを独自の git リポジトリにすることです。git-tf のブリッジを使用して、TFS から個々のプロジェクトをチェックアウトできることはわかっています。また、永続的に git に変換する場合は、それを実行します。
私が懸念しているのは、まだ TFVC にプッシュ バックする必要があるかどうかです。各プロジェクトを独自の git リポジトリとしてチェックアウトした場合、各プロジェクトが個別に変更されるため、変更をプッシュ バックすると TFVC が混乱するのでしょうか? つまり、変更セット 123 からプロジェクト A をチェックアウトし、123 からプロジェクト B もチェックアウトし、A に変更を加えてから変更セット 124 としてそれらを TFVC にプッシュした場合、TFVC は、後で変更を加えたときに、マージの競合またはその他の問題があると判断します。 TFVC の下にすべて 1 つの大きなリポジトリがあるため、B に移動してそれらをプッシュします。
git-tf または git-tfs はこれを適切に処理しますか? それとも、TFS リポジトリ全体を単一の git リポジトリとしてチェックアウトし、そのまま使用する必要がありますか? または、この場合、さまざまな TFS プロジェクトを単一のローカル ワークスペースにチェックアウトし、git-tf ブリッジを使用せずに git を使用してリポジトリを作成し、変更を TFS で行われた編集であるかのようにチェックアウトする方がよいでしょうか。ワークスペースを直接(基本的にすべてのgit履歴とコミットログを無視し、ローカルの変更追跡に使用するだけです)?