バッチファイルを使用してコードを生成し、Team Foundation Server(TFS)から生成されたファイルを自動的にチェックアウトして、再生成できるようにします。これらのファイルの大部分は変更されませんが、ジェネレーターは事前にこれを知りません。
「tfs undo」コマンドはチェックアウトを取り消しますが、一部が変更された場合はプロンプトを表示します(これは行いたくない)。また、生成されたファイルをすぐにチェックインしたくありません。
ユーザーにプロンプトを表示せずに、変更されていないすべてのファイルのチェックアウトを取り消すコマンド(または一連のコマンド)はありますか?
Team Foundation Server Power Tools 2011年8月のUndo Unchangedコマンドをご覧ください
c:\myProject> tfpt uu . /noget /recursive
リンクの更新についてMatt Florenceに感謝します。
実際の構文 に対してRay Vegaに感謝します。
Team Foundation Server Power Tools をインストールし、プロジェクトのワークスペースディレクトリのルートでtfpt.exeを使用してコマンドラインから次を実行します。
c:\myProject> tfpt uu . /noget /recursive
/noget
を含めることを強くお勧めします。これは、合計数によっては非常に長い時間がかかる可能性のある、プロジェクトのすべてのファイルの強制的な「最新版の取得」を防ぐためです。
@mike&@rayありがとう
もっと簡単にしたいです。
VSの[ツール]メニューで、[外部ツール]をクリックします。
追加をクリックします。
タイトルを入力してください。
コマンド:tfpt.exe
引数:uu/noget/recursive
初期ディレクトリ:[矢印ボタンから選択できます]。
[ツール]メニューに2つの新しいコマンドが追加されました。
必要なときに使用してください。
楽しい、
Ofir
Visual Studioは、チェックアウトされたファイルに変更があるかどうかを認識します。
警告:このメソッドは、newファイル、つまりTFSにまだチェックインされていないファイルも削除します。これらのファイルを保持したい場合は、単に「元に戻す」ファイルのセットからそれらを除外します。
TFS2017およびVS2017/VS2019のみ。
パワーツールはTFS 2017には存在せず、古いツールはTFS 2017と一緒に動作することはできませんが、明らかに機能のほとんどはVS2017自体またはプラグインに移動されました(以下を参照)。
変更されていないファイルを元に戻すなどの一部のアクションは、
[元に戻す]ボタンの場所:
「保留中の変更」ビューの「アクション」メニューに「元に戻す」が表示されるように、「ソース管理エクスプローラー」を開く必要があります。 ここで報告 。
また、TFS Power Toolsにリンクされなくなった separate installer を使用して、Windowsシェル統合をセットアップすることもできます。
Windowsシェルの統合は、以前のpowertoolsとまったく同じようには機能しませんが、最も重要なアクションが機能しました。
チェックアウトしたすべてのファイルを再度チェックインするだけで、TFSはどれが変更されたかを把握し、サーバーに記録されている変更セットにのみそれらを含めることができます。
TFSは、チェックインの前後にファイルコンテンツのMD5ハッシュを比較することでこれを行います。
これはすべて、生成プロセスが同じファイルセットを純粋に更新していることを前提としています。つまり、前の世代で生成されたファイルが次の世代で必要ない場合はありません(つまり、削除を保留します)そのファイルの場合)またはファイルの名前が変更されている場合。
プロセスでファイルの削除が必要になる可能性がある場合は、 Team Foundation Power Tools コマンド( tfpt )を見て、tfptオンラインコマンドのみを使用することをお勧めします変更されたファイルをチェックアウトします。不要になったファイルや削除された名前や変更された名前の削除を保留するのに十分なスマートです。
幸運を、
マーティン。
TFSを元に戻すと、ファイルシステムの「変更日」の値が元に戻らないことに注意してください。特に、robocopyなどのツールを使用してリモートマシンを同期する場合、これは非常にイライラします。チェックアウトを取り消した後でも、ファイルを保存して「更新日」の値を更新すると、チェックアウトを取り消した後でもその更新された値が保持されます。
Tfptのuuオプション(他のほとんどの回答で推奨)に関して、最初は明確ではなかった点がいくつかあります。まず、これはコマンドtfpt uu /?
でアクセスできるコマンドラインヘルプです
保留中の冗長な変更を元に戻します。保留中の変更があるアイテムの状態がサーバーと同じである場合、変更は取り消されます。
使用法:tfpt uu [/ changeset:changesetnum] [/ recursive] [/ noget] [filespec ...]
- / changesetワークスペースを最新バージョンではなく、指定された変更セットバージョンのアイテムの状態と比較します
- filespec ...リストされたfilespecsの冗長な変更のみをチェックします
- / recursive指定されたファイル仕様を完全再帰で確認します
- / nogetチェックする前にgetを実行しません
/ changesetオプションは、filespecsまたは/ recursiveでは使用できません。
次に、他の回答で推奨されているコマンドを分類します。
tfpt uu . /noget /recursive
tfpt uu
は、「Undo Unchanged」コマンドを使用することを指定します。.
は、現在の作業ディレクトリをfilespecとして使用することを示します(推測します)。/noget
は、変更されていないファイルを元に戻す前に「最新バージョンの取得」が呼び出されないようにします。/recursive
は、filespecだけでなく、すべての再帰的な子フォルダーおよびファイルが考慮されるようにします。これはfilespecに依存しているようです-何も指定されていない場合、ワークスペース全体が処理されます。そのため、上記のコマンドに関して、ここで注意すべきことがいくつかあります...
次のコマンドが最適であることがわかりました-ワークスペース全体を処理します。
tfpt uu /noget
Tfptはそれを使用して処理するワークスペースを決定するため、作業ディレクトリに依存していることに注意してください。ただし、ワークスペース内のファイルまたはフォルダーへのパスを指定している限り、問題ありません。
上記のRay LionFangのアプローチを見ることができます。担当者がいないのでコメントできません。ツールなどに変更を加える必要がないため、このアプローチが好きです。
- プロジェクトを右クリックします
- [チェックアウトを元に戻す]を選択して、[OK]をクリックするか、確認が残っている場合は...
- その後、チェックアウトの取り消し中に、実際の変更が含まれるすべてのファイルについて、プロンプトでそのファイルのチェックアウトの確認を求められます...単に「すべていいえ」をクリックします
- Visual Studioは、チェックアウトされたファイルに変更があるかどうかを認識します。このメソッドは、TFSからまだチェックインされていない追加ファイルも削除することに注意してください...
.......「No To All」を押すと修正されないファイルがいくつか保持されるという点で、このアプローチには問題があります。実際に修正された最初のファイルに到達するまで未修正ファイルを元に戻し、それが理にかなっている場合は残りの未修正ファイルを無視するようなことをするようです。この効果はたまにしか見たことがありません。
潜在的な回避策は上記のプロセスに従うことですが、「No To All」を押す代わりに、各ファイルで「No」を押します。作業しているファイルの数によっては時間がかかることがあるため、通常は「ALT + N」を押したままにします。変更されていないすべてのファイルを元に戻しながら、すべてのファイルを高速化します。