確認すべき点がいくつかありますが、TFS/プロジェクト構造の変更を行う前に、現在のすべての変更を (すべてのチームに対して) チェックインし、get-latest を実行してこれらの変更をすべて取得し、バックアップを作成することをお勧めします。ローカル ワークスペース フォルダー全体。
あなたに完全に答えるために明確にする必要がある1つのポイント...どのサブフォルダーが分岐されていますか? IE は通常、 に分岐MSB/Mainしますか、それとも、などTeamProjectA/Mainの個々のプロジェクトに分岐しますか?MSB/Main/Enterprise/Project1Project2
最初: ワークスペースのマッピングを確認します... Visual Studio で、ソース管理エクスプローラーを開きます。ウィンドウの上部にワークスペースのドロップダウンがあります...「ワークスペースの管理...」を選択して、メインのワークスペースを編集します。
理想的には、TFS プロジェクトのルート (この場合は「$」) をルート ローカル作業フォルダーにマッピングする作業フォルダーが 1 つだけ存在します。複数の作業フォルダーがある場合は、2 番目のフォルダーがルートのサブフォルダーでないことを確認してください。IE 用に別のフォルダーを用意するべきではありません$/TeamProjectA/Main/Enterprise/Project1。もしそうなら、それを削除し、ルートから get-latest を実行してください。
TeamProjectB/Project1がフォルダーにマップされている場合TeamProjectA、参照を何回変更しても関係なく、常にチーム B のプロジェクトをロードしているため、これは私の最初の推測です。
2 番目: 分岐は 1 回だけ行います。その後のすべてがマージされ、直接の親と子の間でのみマージできます (フープをジャンプして手動でマージを台無しにしない限り... 9 カ国で射撃可能な犯罪です)。
つまり、Project1から分岐している限り、TeamProjectB常に に結び付けられTeamProjectBます...各チームおよびプロジェクトの TFS で参照を修正できますが、 にマージしTeamProjectAて戻すとMSB、 Project1 はMSBすべてとマージされません。そうしないと。
何が起こるかははっきりしていません...そのプロジェクトは何もマージされないか、TeamProjectBのフォルダーにマージされます。後者が当てはまるとは思えませんが、前者もあまり意味がありません... TFSが何らかの形で短絡することをほとんど期待しています。
私は(完全なWAG)から分岐できたので、分岐Project1しTPBてTPAいない/Mainか、または/Main/Enterprise...答えがTFS別の分岐のサブフォルダーへの分岐を許可しないことを願っています。
これを修正するには
にマージProject1しTPBます。チェックイン。
にマージTPB/Project1しMSBます。チェックイン。
を選択しTPA/Project1ます。に進みFile -> Source Control -> Branching and Merging -> Reparentます。MSB's Project 1新しい親として選択します。ブランチが/Mainまたはから作成された場合/Main/Enterprise、ブランチ ルートが何であれ、親を変更する必要があります。
(TPB/Project1ルート化されていない場合MSB、これはオプションではないことに注意してください...プラン「B」に進みます)
これらの変更をチェックインできる/チェックインする必要があるかどうかわかりません... 安全のために、TPA と MSB の両方でチェックインしてください
プラン 'B' : それがうまくいかない場合は、 を削除TPA/Project1してから再分岐する必要がありますMSB。これを行う前に、すべてがマージされているMSB(そしてチェックインされている) ことを確認してください。
TFSは、既存のディレクトリへの再分岐について不平を言うことがあります (の削除履歴を保持しているためTPA/Project1)...そうなるとは思いませんが、そうなった場合は、コマンド ライン ツールを使用して完全に削除する必要があります。TPA/Project1. コマンドはtf destroy... ローカル フォルダーから実行していることを確認してください。そうしTPA/Project1ないと、tf が tfs サーバー/パスを解決できない可能性があります。
チッ!
ジェームズ