178

バッチ ファイルを使用してコードを生成し、生成されたファイルを Team Foundation Server (TFS) から自動的にチェックアウトして、再生成できるようにします。これらのファイルの大部分は変更されていませんが、ジェネレーターはこれを事前に認識していません。

「tfs undo」コマンドはチェックアウトを元に戻しますが、一部が変更されている場合はプロンプトが表示されます (これは望ましくありません)。また、生成されたファイルをすぐにチェックインする必要もありません。

ユーザーにプロンプ​​トを表示せずに、変更されていないすべてのファイルのチェックアウトを元に戻すコマンド (または一連のコマンド) はありますか?

4

10 に答える 10

203

2011 年 8 月の Team Foundation Server Power Toolsの Undo Unchanged コマンドをご覧ください。

c:\myProject> tfpt uu . /noget /recursive

リンクの更新をしてくれたマット・フローレンスに感謝します。

実際の構文について Ray Vega に感謝します。

于 2009-02-13T00:59:18.283 に答える
127

Team Foundation Server Power Toolsをインストールし、プロジェクトのワークスペース ディレクトリのルートで tfpt.exe を使用して、コマンド ラインから次を実行します。

c:\myProject> tfpt uu . /noget /recursive

/noget合計数によっては非常に長い時間がかかる可能性があるすべてのプロジェクト ファイルの強制的な「最新の取得」を防ぐため、含めることを強くお勧めします。

于 2010-05-27T21:03:08.950 に答える
122

@mike と @ray さん、ありがとうございます。

もっと簡単にしたい。

VS の [ツール] メニューで、[外部ツール] をクリックします。

外部ツール

[追加] をクリックします。

タイトルを入力します。

コマンド: tfpt.exe

引数: uu . /noget /recursive

初期ディレクトリ: [矢印ボタンから選択できます]。

ソリューションで変更を元に戻す

プロジェクトの変更を元に戻す

[ツール] メニューに 2 つの新しいコマンドが追加されました。

必要に応じて使用してください。

楽しみ、

オフィル

于 2012-09-06T06:42:42.813 に答える
8

チェックアウトしたすべてのファイルを再度チェックインするだけで、TFS はどのファイルが変更されたかを判断し、サーバーに記録されている変更セットにのみ含めることができます。

TFS は、チェックイン前後のファイル コンテンツの MD5 ハッシュを比較することでこれを行います。

これはすべて、生成プロセスが同じファイルのセットを純粋に更新していることを前提としています。つまり、前の世代で生成されたファイルが次の世代で不要になることはありません (つまり、削除を保留したい場合)。そのファイルの場合) またはファイルの名前が変更されます。

プロセスでファイルの削除が必要になる可能性がある場合は、Team Foundation Power Toolsコマンド ( tfpt ) を調べて、変更されたファイルのみをチェックアウトする tfpt オンライン コマンドを使用することをお勧めします。不要になった、または名前が変更されたファイルの削除を保留し、追加を保留します。

幸運を、

マーティン。

于 2009-02-13T13:33:11.950 に答える
6

TFSの取り消しでは、ファイルシステムの「変更日」の値が元に戻らないことに注意してください。これは、特にrobocopyなどのツールを使用してリモートマシンを同期する場合に非常にイライラします。チェックアウトを元に戻した後でも、ファイルを保存して「変更日」の値を更新すると、元にしたチェックアウト後もその更新された値が保持されます。

于 2012-01-04T22:51:42.927 に答える
4

tfpt の uu オプション (他のほとんどの回答で推奨されている) に関して、最初は明確ではなかった点がいくつかあります。まず、これはコマンドでアクセスできるコマンド ライン ヘルプです。tfpt uu /?

冗長な保留中の変更を元に戻します。保留中の変更があるアイテムの状態がサーバー上と同じである場合、変更は元に戻されます。

使用法: tfpt uu [/changeset:changesetnum] [/recursive] [/noget] [filespec...]

  • /changeset 最新バージョンではなく、指定された変更セット バージョンでワークスペースをアイテムの状態と比較します
  • filespec ... リストされたファイルスペックのみをチェックして、冗長な変更を確認します
  • /recursive 指定されたファイル仕様を完全再帰でチェックします
  • /noget チェック前に get を実行しない

/changeset オプションは、filespecs または /recursive では使用できません。

ここで、他の回答で推奨されているコマンドを分解してみましょう。

tfpt uu . /noget /recursive
  • tfpt uu「Undo Unchanged」コマンドを使用することを指定します。
  • .現在の作業ディレクトリをファイルスペックとして使用する必要があることを示しています(推測)。
  • /noget変更されていないファイルを元に戻す前に「最新バージョンを取得」が呼び出されないようにします。
  • /recursivefilespec だけでなく、すべての再帰的な子フォルダーとファイルが考慮されるようにします。これは filespec に依存しているようです。何も指定されていない場合は、ワークスペース全体が処理されます。

したがって、上記のコマンドに関して注意すべき点がいくつかあります...

  • 作業ディレクトリに依存します。
  • ワークスペース全体を処理するわけではありません。

次のコマンドが最適であることがわかりました。ワークスペース全体を処理します。

tfpt uu /noget

tfpt がどのワークスペースを処理するかを決定するために作業ディレクトリを使用するという点で、作業ディレクトリに依存していることに注意してください。ただし、ワークスペース内のファイルまたはフォルダーへのパスを提供する限り、問題ありません。

于 2015-12-11T07:47:32.080 に答える