91

TFS で最近行った変更をロールバックしたいと考えています。Subversion では、これは非常に簡単でした。ただし、TFS では信じられないほどの頭痛の種のようです。

オプション 1: 以前のバージョンを取得する

  1. 各ファイルの以前のバージョンを手動で取得する
  2. 編集のためにチェックアウト
  3. 失敗 - チェックアウト (VS2008) により、強制的に最新バージョンを取得する

オプション 2: TFS Power Tools を入手する

  1. Team Foundation Power Tools をダウンロード
  2. コマンド ラインからロールバック コマンドを発行する
  3. 失敗 - 他に保留中の変更がある場合は機能しません

オプション 3: 変更を手動で元に戻す

  1. 変更を手動で元に戻し、新しい変更セットをコミットする

質問

TFS で以前の変更セットにロールバックするにはどうすればよいですか?

4

17 に答える 17

63
  1. Team Foundation Power Toolsをダウンロードしてインストールします。
  2. Visual Studio コマンド プロンプトを開く
  3. TFS がマップされているファイル システム上のディレクトリに移動します。これを行わないと、ロールバックしようとしたときに「ワークスペースを特定できません」というエラーが表示されます。
  4. 他のすべてがチェックインまたは棚上げされていることを確認してください
  5. tfpt rollback を実行してインターフェイスを起動します。
  6. ロールバックする変更セットを選択します
  7. ロールバックしたファイルの新しいバージョンをチェックインする

このツールの大きな欠点は、マージする前にワークスペース内のすべてを更新する必要があることです。影響を受けるファイルがあったソース ツリー内の場所に直接マップされたロールバック専用の新しいワークスペースを作成することで、この問題を回避しました。

ロールバックする変更セットを特定するのに助けが必要な場合は、無料のTeam Foundation Side Kicksアドインのコード レビュー ツールが非常に役立ちます。

于 2009-03-12T12:35:08.733 に答える
24

あなたのソリューション#1はうまくいきます:1.各ファイルの以前のバージョンを手動で取得します

  1. 編集のためにチェックアウト

  2. ファイルをチェックインし、プロンプトが表示されたらサーバーの変更を無視します。

失敗した理由は、「チェックアウト時にアイテムの最新バージョンを取得する」オプションをオンにする必要があるためです。ツール...オプション...ソース管理...Visual Studio Tema Foundation Serverに移動し、[チェックアウト時にアイテムの最新バージョンを取得する]のチェックを外して、このオプションをオフにします

乾杯

于 2008-12-05T14:33:19.273 に答える
18

ロールバックは、tfpt.exeからTeamFoundationバージョン管理ツールであるtf.exeに移動されました。

TF - Team Foundation Version Control Tool, Version 10.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Rolls back the changes in a single or a range of changesets:
tf rollback /changeset:changesetfrom~changesetto [itemspec] [/recursive]
            [/lock:none|checkin|checkout] [/version:versionspec]
            [/keepmergehistory] [/noprompt] [/login:username,[password]]

tf rollback /toversion:versionspec itemspec [/recursive]
            [/lock:none|checkin|checkout] [/version:versionspec]
            [/keepmergehistory] [/noprompt] [/login:username,[password]]
于 2011-03-18T17:43:28.367 に答える
14

オプション 1 を機能させる別の方法は、手順の順序を逆にすることです。

  1. アイテムをチェックアウト
  2. 特定のバージョンを古いバージョンに取得する
  3. チェックイン (「警告サーバー バージョンが新しい」ダイアログを無視) または [保留中の変更] ダイアログの競合セクションで、ローカル バージョンを保持することで競合を解決します。

これは、Get Latest On Checkout が設定されている場合でも機能します。

于 2009-09-04T00:36:56.953 に答える
14

TFS 2010 バージョン管理で変更セットをロールバック (元に戻す) するには、2 つのオプションがあります。最初のオプションは、ユーザー インターフェイスを使用することです (最新バージョンのTFS 2010 Power Toolsがインストールされている場合)。

TFS 2010 の UI で変更セットをロールバックする

もう 1 つのオプションは、TFS 2010 バージョン管理コマンド ライン アプリケーションを使用することです。

tf.exe rollback

ここで入手できる私のブログ投稿で両方のアプローチに関する情報を持っています: http://www.edsquared.com/2010/02/02/Rollback+Or+Undo+A+Changeset+In+TFS+2010+Version+Control.aspx

于 2011-08-19T16:11:20.247 に答える
5

参考までに、 TFS 2010を使用している場合は、Rollback Command (Team Foundation Version Control)マニュアルへのリンクを次に示します。

特定の変更セットをロールバックするには、Visual Studio コマンド プロンプト (2010)に移動し、TFS ワークスペース ディレクトリに移動して、次のコマンドを入力します。

tf rollback /changeset:C12345

あなたのチェンジセット番号はどこ12345ですか。この後、それが行ったことのログが表示され、マージの競合を整理する必要があります。

于 2011-08-04T11:21:22.737 に答える
4

ロールバックオプションがないことは、実際にはTFSの機能です;)

変更をロールバックするには:

  1. 必要な変更の特定のバージョンを確認してください
  2. [編集]->[すべて選択]->ファイル内のテキストをコピー
  3. サーバー上にあるファイルのバージョンを確認してください
  4. ファイルに貼り付けてチェックインします。

これで、ロールバック前のすべての中間チェンジセットも保存されます。なんて素晴らしい機能でしょう。

于 2010-11-12T20:42:22.897 に答える
4

TFPT.exe (パワー ツール) を使用して変更セットをロールバックする方法に関するこの CodePlex の記事を見つけました。

これがお役に立てば幸いです。

于 2008-08-29T16:25:03.037 に答える
1

TFS powertools を使用するのが最善の方法ですhttp://rajputyh.blogspot.com/2008/08/change-set-rollback-using-tfs-power.html

于 2010-07-22T17:49:33.350 に答える
1

特定のバージョンを取得

[バージョン タイプ]ドロップダウンで、[タイプ] を [変更セット] として選択します

Changeset ... ボタンを使用して Changeset を検索するか、この番号がわかっている場合は入力します。

特定の変更セットを取得した後。

チェックアウト

チェックイン

于 2011-01-14T16:59:51.693 に答える
1

チェックインを 1 回行って、それを元に戻したいだけの場合は、 # それに関連付けられた変更セットがあります。問題のフォルダーで履歴を実行して、不適切な変更セットを確認します。それを開いて詳細を確認します (すべてのファイルが変更されたなど)。

その画面から変更セットを復元または元に戻すことができると思いますが、これを実行しようとすると Visual Studio がクラッシュしました。/ため息 -- 私は間違いなくあなたの痛みを分かち合います.

このサイトのどこで TFS をダウンモッドしますか?

于 2008-08-28T15:36:39.600 に答える
1

別のオプションはTFSPlusです。この Visual Studio アドインは、(特に) [このバージョンを取得] コマンドを履歴ウィンドウに追加します。ファイルをチェックアウトしている場合は、そのバージョンに置き換えられます。後でチェックインすると、そのバージョンに効果的にロールバックされます。

ただし、完全な変更セットではなく、個々のファイルで機能します。

于 2009-12-24T15:04:43.747 に答える
1

Ben Scheirman - Changeset Details ダイアログにはロールバック機能がありません。

于 2009-08-12T18:14:45.753 に答える
1

Team Foundation Power Tools が最適だと思います。保留中の変更がある場合は、それらをシェルブセットに移動してから、ロールバック コマンドを実行する前に保留中のすべての変更を元に戻すかチェックインできます。詳細については、 http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20undo%20a%20check-in&referringTitle=Source%20Control%20Practices%20at%20a%20Glanceを参照してください。

于 2008-08-28T17:41:23.967 に答える
0

上記の解決策はTFS2008用です。TFS2010にはロールバック機能が組み込まれています。詳細については、この記事を参照してください。

于 2011-07-11T21:26:33.410 に答える
0

これらの解決策はどれも私にとってはうまくいきませんでした Dave Roberts の解決策は、私が実際に取り組んだことに最も近いものでした。チェックアウト時にアイテムの最新バージョンを取得するを有効にしていませんが、サーバー ポリシーのようです。

これに対する私の解決策は、編集のためにファイルをチェックアウトし、特定のバージョンを取得してから、競合が検出されたらマージ ツールを使用して (変更を手動でマージしないで)、ファイルが元の状態になるようにすることです。

特定のバージョンと比較して、ファイル全体をコピーしてから、古いバージョンの上に貼り付けるつもりでした。

それでも、これを行う簡単な方法があるはずです!

于 2010-11-03T11:33:12.350 に答える
0

最新バージョンの TFS Power Tools (2011 年 8 月)をインストールすると、変更セットを右クリックして [変更セット全体をロールバック] を選択するだけで済みます。それはそれほど簡単ではありません。

ここから入手できます: http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f

上記のページのチーム エクスプローラーの機能強化でヒントが示されています。

このリリースの新機能は、[..] バージョン管理の変更を簡単にロールバックできることです。

于 2011-10-19T02:58:08.343 に答える