Team Foundation Server 2010とVisual Studio 2010を使用しています。
Visual Studioの外部でファイルを変更すると、TFSはファイルに加えられた変更を検出しないように見えるため、変更後にファイルをチェックインするオプションが提供されません。
これをどのように解決できますか?
Team Foundation Server 2010とVisual Studio 2010を使用しています。
Visual Studioの外部でファイルを変更すると、TFSはファイルに加えられた変更を検出しないように見えるため、変更後にファイルをチェックインするオプションが提供されません。
これをどのように解決できますか?
回答:
Visual Studioの外で作業しているときにサーバーにネットワーク接続している場合は、tfコマンドラインクライアントを使用するか、Windowsエクスプローラーのシェル統合を使用して、編集する前にファイルをチェックアウトすることをお勧めします。TFS Power Toolsリリースで利用可能です。(さらに、他の多くのツールには、これを自動化するTFS統合がありますが、メモ帳だけを使用している場合でも、これは手動の手順である必要があります。)
もちろん、作業をしているときに、ファイルをチェックアウトできるネットワーク接続がない場合がよくあります。
変更したファイルがわかっている場合は、Visual Studioからチェックアウトするだけで、再びチェックインできます。
編集したファイルがわからない場合は、tfpt online
コマンド(Power Toolsリリースの一部)を実行して変更を検出できます。これにより、ローカルで変更されたファイルが検索され、これらのファイルがサーバーからチェックアウトされます。
TFSには、このための「調整」コマンドがあります。
参照:フォルダ間の差異の調整
これはTFS Power Toolsを使用して私にとってはうまくいきました:
tfpt online /adds /deletes /diff /noprompt /recursive directory-name
(ここで、directory-nameは更新するディレクトリへのパスです。それ以外の場合は、TFSリポジトリ全体の変更を検出します)
実際に変更を加えない場合の動作を知りたい場合は、/preview
スイッチを追加することで強制的に予行演習を実行できます。
/exclude:fld_name/*,filename
不要なファイルを除外するために使用できるスイッチがあります。それにより、私はかなり停止しました
tfpt online /deletes /noprompt /recursive directory-name
、1000個のファイルを「変更」するため、元に戻す必要があります。しかし、私はこれらに触れたことはなく、フォルダを削除しただけです。
*1- make changes outside of Visual Studio
2- go to Visual Studio and open Source Control Explorer
3- right click on the folder > "Check Out for Edit" > "Check Out"
4- right click on the same folder > "Undo Pending Changes..." > "Undo changes" > "No to All"*
私はこの回避策をブランチでテストしましたが、それは非常に役に立ちました。しかし、手動で行う必要があるのは、新しいファイルと新しいフォルダーだけです。
操作の前にブランチを作成することをお勧めします。操作の時間を隔離します。
注:この手法では、TFSが常に変更済みとしてマークするファイルと同じクリーンアップも行われます。
これを試して。これはある種の回避策ですが、機能します。
それでおしまい。変更が表示されます。
Visual Studioの外部で変更されたファイルをTFSに把握させる別のソリューションもあります。
この後、TFSはソリューションの変更を自動的にスキャンします。
ステップ1は、さまざまな方法で実行できます。ここに幾つかあります:
Visual Sourcesafeも同様に機能し、VSSまたはTFSに変更を通知する方法は、Visual Studio内で一度ファイルをチェックアウトすることです。
ソース管理を開き、TFSフォルダーに移動します。フォルダを右クリックして、「比較」を選択します。
編集したファイルが赤でマークされて表示されることに注意してください。
これは、tfpt online
読み取り専用でも編集でもないファイルを取得するよりも優れていると思います。
インターネットがダウンしていてオフラインで作業していたときに過去にこの問題があり、変更のほとんどがチームエクスプローラーに表示されませんでした。
次の手順に従います。まず、ソリューションエクスプローラーで、調整するフォルダー(私にとっては、ソリューションフォルダー全体)を選択し、[ 比較... ]を選択します。 [ フィルターの変更]をクリックし、フィルター内でテキストで-ボックスには、次のように入力できます。
*.cs;!obj\;!bin\;!packages\;
この例では、C#ファイルのみを検索に含め、bin、obj、packagesのフォルダーを除外します。
列の保留中の変更に注意してくださいは、ファイルが編集、追加などとしてマークされているか、何もマークされていないかに関する情報が含まれています。
最後に、プロジェクトがここにリストされていない理由がわからない(* .csフィルターを削除した後も表示されない)ので、ソリューションを再構築して、プロジェクトが確実に更新されるようにします。
+ソリューションで、「オンラインにする」と表示された接続ボタン(表示された場合)をクリックします。