web-dev-qa-db-ja.com

TFS 2010でVisual Studioの外部のファイルに加えられた変更を検出するにはどうすればよいですか?

Visual Studio 2010でTeam Foundation Server 2010を使用しています。

Visual Studioの外部でファイルを変更するたびに、TFSはそのファイルに加えられた変更を検出しないようであるため、変更後にファイルをチェックインするオプションを提供しません。

これはどのように解決できますか?

116
asmo

Visual Studio以外で作業しているときにサーバーにネットワーク接続している場合は、tfコマンドラインクライアントを使用するか、Windowsエクスプローラーシェル統合を使用して、編集する前にファイルをチェックアウトすることをお勧めします TFS Power Tools リリースで利用可能。 (さらに、これを自動化するTFS統合を備えた他のツールが増えていますが、メモ帳を使用しているだけの場合は、これも手動で行う必要があります。)

もちろん、作業中にファイルをチェックアウトできるネットワーク接続がない場合は何度もあります。

変更したファイルがわかっている場合は、Visual Studio内からファイルをチェックアウトするだけで、チェックインできるようになります。

編集したファイルがわからない場合は、tfpt onlineコマンド(Power Toolsリリースの一部)を実行して、変更を検出できます。これにより、ローカルで変更されたファイルが検索され、これらのファイルがサーバーからチェックアウトされます。

48
Edward Thomson

TFSには、このための「調整」コマンドがあります。

  1. ソース管理エクスプローラーを開きます
  2. 変更したフォルダーを右クリックして、Compareを選択します
  3. 調整するファイルを選択します(を押します CTRL+A すべてのファイルを選択する)
  4. Reconcileボタンをクリックします
  5. フォルダーの差異の調整ダイアログでオプションを設定します。 保留中の変更がないファイルチェックアウトに設定されていることを確認してください
  6. クリック[〜#〜] ok [〜#〜]
  7. ローカルに変更がある場合、チェックアウトダイアログが表示されます。優先するロックタイプを設定する
  8. クリックチェックアウト

Reconcile Folder Differences

参照: フォルダー間の違いの調整

149
mhu

TFS Power Toolsを使用して、これはうまくいきました。

tfpt online /adds /deletes /diff /noprompt /recursive directory-name

(directory-nameは更新するディレクトリへのパスです。それ以外の場合は、TFSリポジトリ全体の変更を検出します)

実際に変更を加えずに何をするかを知りたい場合は、/previewスイッチを追加して強制的にドライランを実行できます。

35
Adam Batkin
*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が常に変更済みとしてマークするファイルと同じクリーンアップも行います。

14
hugbe8

これを試して。これは何らかの回避策ですが、動作します:

  1. visual Studioの外部で変更を行う
  2. visual Studioに移動し、ソース管理エクスプローラーを開きます
  3. フォルダを右クリックし、> "編集用にチェックアウト"> "チェックアウト"
  4. 同じフォルダを右クリックして、"保留中の変更を元に戻す..."> "変更を元に戻す"> "No to All"

それでおしまい。変更が表示されます。

7
Alexander G

Visual Studioの外部で変更されたファイルをTFSに把握させる別のソリューションもあります。

  1. ソリューションをオフラインで開く
  2. ソリューションエクスプローラーでソリューションファイルを選択し、[オンラインにする]ボタン(GoOnline Button Icon

TFSは、この後、ソリューションの変更を自動的にスキャンします。

ステップ1は、さまざまな方法で実現できます。ここに幾つかあります:

  • GoOffline Extensionを使用します-非常にシンプルで効果的です。
  • ソリューションを開くときにTFS資格情報を要求された場合(自動ドメイン認証なし)、資格情報を入力しないでください。ソリューションはオフラインで開き、[Go Online]ボタンを押してログインします
  • (極端な解決策)ネットワークケーブルを取り外します。ソリューションを開きます。ネットワークケーブルを接続します。
4

Visual Sourcesafeもこのように機能し、VSSまたはTFSに変更を通知する方法は、Visual Studio内でファイルを一度チェックアウトすることです。

3
CheckRaise

過去にインターネットがダウンしてオフラインで作業していたときにこの問題が発生しましたが、ほとんどの変更はチームエクスプローラーに表示されませんでした。

次の手順に従います。まず、ソリューションエクスプローラーで、調整するフォルダー(私にとっては、ソリューションフォルダー全体)を選択し、Compare ...enter image description hereフィルターの変更をクリックし、filterテキストボックスに次のように入力できます:

*.cs;!obj\;!bin\;!packages\;

この例では、C#ファイルのみを検索に含め、bin、obj、packagesフォルダーを除外します。

Pending Changeには、ファイルが編集、追加などとしてマークされているかどうか、または何も付けられていないかどうかの情報があります...

  • edit(ローカルアイテムに一致するサーバーアイテムがある場合)としてマークするには、ファイルを選択してEdit ...
  • addとしてマークするには(ローカルアイテムにサーバーアイテムがない場合)、ファイルを選択してAdd Files

最後に、プロジェクトがここにリストされていない理由がわかりません(* .csフィルターを削除しても表示されない)ので、ソリューションを再構築してプロジェクトも更新されるようにします

+ソリューションで、Go Onlineと言った接続ボタン(表示されている場合)をクリックします。

1
Jaider

ソース管理を開き、TFSフォルダーに移動します。フォルダを右クリックして、「比較」を選択します。

編集したファイルが赤でマークされて表示されることに注意してください。

これはtfpt onlineこれは、読み取り専用ではなく編集されていないファイルも取得します。

1
user2572682

プロジェクトを開いた状態のVisual Studio 2015では、Visual Studioによってファイルが外部から変更されていることが検出され、何もしなくても自動的にチェックアウトされることがわかりました。通常の方法でプロジェクトをチェックインすると、外部の変更が保存されました。

0
Graham Laight