VS2008とVS2010でTFSを使用していますが、TFSコレクションにはいくつかのプロジェクトがあります。
TFSフォルダー構造を保持するためにTFSルートをローカルドライブにマップし、いくつかのサブフォルダーの最新情報を取得しました。
不要なフォルダもダウンロードしたので、ローカルフォルダの内容を削除しましたが、TFSでそのフォルダが黒く表示され、「最新」になっています。はい。以前にダウンロードしたフォルダをローカルで削除したことをTFSに伝えるにはどうすればよいですか?
問題は、「最新」の意味についてTFSに同意できないことだと思います。 TFSの「最新」とは、最新のものを入手してからサーバー上で何も変更されていないことを意味します。ハードドライブにあるものがサーバー上の最新バージョンと等しいという意味ではありません。したがって、TFSは想定されていることを示しています。詳細については、この質問を参照してください: TFSが最新のものを取得しないのはなぜですか?
MBulavaが述べたように、ローカルハードドライブに配置したくないサーバー上のフォルダーの目的のソリューションは「クローク」です。 (フォルダを右クリック->クローク)。ハードドライブにフォルダを置きたくない場合は、クロークを解除するまでダウンロードされず、灰色で「ダウンロードされていません」と表示されるため、このソリューションをお勧めします。
ハードドライブの内容とサーバーのバージョンの違いを確認したい場合は、「フォルダの比較」機能を使用できます。フォルダがハードドライブから削除されたことが表示されます。
(ダウンロードしなかった他のフォルダーと同様に)フォルダーをマップして灰色にしたい場合は、クロークしてからクロークを解除しますが、今すぐダウンロードするには「いいえ」と答えます。これは、そもそもフォルダをダウンロードしないのと同じです。
Martin Woodward すばらしい TFSトップヒント#11-ローカルファイルシステムからソース管理ファイルを削除する クローキングに頼らずにこの問題に答えるブログ投稿。
特定のバージョンを取得、バージョンタイプをチェンジセットに変更する必要がありますそしてチェンジセット番号に1を指定します。彼のブログ投稿では、これが機能する理由について詳しく説明しています。 Visual Studio 2013、2015、および2017のチームエクスプローラーでこの動作を確認しました。
更新:
処理するフォルダーが多数ある場合は、次のようにコマンドラインを使用して、folderNameを相対フォルダーに置き換えます Clientitemspecまたは同等のServeritempec :
tf.exe get folderName /v:1 /recursive
「クローク」を使用するというMbulavaの提案は、ファイルやフォルダーをTFSサーバーに残しますが、ファイル/フォルダーをローカルバージョンおよび「最新バージョンの取得」要求から削除します。
ローカルディレクトリからファイルを削除した後、それらの変更をサーバーに表示する場合は、TFSダイレクタに移動し、削除するファイルを選択して右クリックし、フォルダを削除します。次に、保留中の削除の変更をTFSサーバーに「チェックイン」する必要があります。その後、TFSサーバーはファイル/フォルダーを削除します。