TFSチェックインをロールバックするにはどうすればよいですか?


92

TFSで最近行った変更をロールバックしたいのですが。Subversionでは、これは非常に簡単でした。しかし、それはTFSの信じられないほどの頭痛のようです:

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

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

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

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

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

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

質問

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


2
VSSにはロールバックがありません。彼らはたまたま「ロールバック」と名付けられた別の機能を持っていますが、TFS用語では、それは本当に破壊です。(a)先端からしか実行できません。ロールバックしたい変更の後に追加の変更がチェックインされている場合は機能しません(b)データベースから変更を完全に削除します
Richard Berg

1
ああ、私はVSSロールバックの容易さを切望しています。
グレッグ

2
最近この問題に遭遇しました。なぜTFSでロールバックするのがそれほど難しいのか、です。ロールバックはソース管理の基本機能の1つです
JohnIdol 2010

2
これはTFSで非常に苦痛です!
Jon Kragh

1
Mercurialに切り替えてください!私は転職してTFSに身を投じました。それ以来、コマンドラインからHgのように見えるようにPowerShellスクリプトを作成しています。
相撲

回答:


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

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

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


この方法を試すことはできますが、警告が表示されます。ツールが十分に文書化されていないため、すべてのエラーを回避できたとしても、実際にロールバックできない場合があります。(私は2時間試してみただけです)
錬金術

1
このテクニックは私にとってうまくいきました。ワークスペースの提案は非常に優れていました(大規模なコードベースを扱っている場合は重要です)。
cloggins 2010

1
警告... TFSとVisual Studioのバージョンが一致していない場合、問題が22あります。私はVS2010をTFS2008(ITがdevに追いつかない古典的なケース)で使用していますが、VS2010でTF.EXEはロールバックしていますが、TFS2008に対しては機能しません。また、tfpt 2010ではロールバックが削除されているため、以前の方法では実行できません。
Simon Gillbee、2011

7
:「ロールバック」コマンドは、今、あなただけの「TFロールバック」と入力する必要があり、VS2010のためのパワーツールから移動したsocial.msdn.microsoft.com/Forums/en/tfspowertools/thread/...
ダン

TFS Power Toolsのバージョン2011年8月以降、ロールバックするためにコマンドラインを使用する必要がなくなりました。
joerage 2011

24

ソリューション#1が機能します。1.各ファイルの以前のバージョンを手動で取得します

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

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

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

乾杯


2
パワーツールで2時間苦労し、どこにも行かなかった後、このようにしただけです... wtfはTFSがこの基本機能をサポートしていないためです...
alchemical

この機能はTFS 2010 / Visual Studio 2010に追加されています
。– Robaticus

2
明確にするために、これは真のロールバックではありません。古いバージョンになっています。同じではありません。
ライアンクロムウェル

チェックアウト設定でアイテムの最新バージョンを取得で問題を指摘するための+1 !
クリスパロット卿2013年

18

ロールバックはtfpt.exeからTeam Foundationバージョン管理ツールである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]]

1
これをVisual Studioから直接行う方法はありますか?
カイルデラニー2017

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で入手できるブログ投稿にあります


14

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

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

これは、[チェックアウト時に最新を取得]が設定されている場合でも機能します。


1
うまくいきませんでした。しかし、それは、一部のピンヘッドが愚かなポリシーでTFSを設定したためです。
翔壇

5

参考までに、TFS 2010を使用している場合は、ここにロールバックコマンド(Team Foundationバージョン管理)のマニュアルへのリンクがあります

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

tf rollback /changeset:C12345

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



4

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

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

  1. 必要な変更の特定のバージョンをチェックしてください
  2. Edit-> Select All-> Copy the text in the file
  3. サーバーにあるファイルのバージョンをチェックアウトする
  4. ファイルを貼り付けてチェックインします。

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


最初はこれは皮肉なことだと思っていましたが、この解決策は、ロールバックの許可を与えられたほど幸運ではない私たちにとっては実際にうまくいくかもしれません。
EBarr

後で実際に保持したいのと同じファイルに変更を加えない限り。
Robert Jeppesen 2010

粗野ですが、これがTFSでこれを実行できる唯一の方法です。私はチェックアウトを行う場合、私は後ろにそれを確認しようとしたときに最後のバージョンに古いバージョンのTFS意志自動マージを取得。
スティーブ

1

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

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

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


いや、歴史UIからのロールバックだけTFS 2010年に追加されました
リチャード・バーグ

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を参照してください


1

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


1

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

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



1

特定のバージョンを取得

ではバージョン タイプとして選択タイプをドロップダウンチェンジ

この番号がわかっている場合は、「チェンジセット...」ボタンを使用してチェンジセットを検索するか、単に入力します。

特定のチェンジセットを取得した後。

チェックアウト

チェックイン


0

これらのソリューションはどれも私にとってはうまく機能しませんでした。DaveRobertsのソリューションは、私が実際に機能したものに最も近いものでした。[チェックアウト時に最新バージョンのアイテムを取得する]を有効にしていませんが、サーバーポリシーのようです。

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

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

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


0

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


VS2010(tf)がTFS2008に対して機能せず、TFPT 2010にはロールバックがなくなったので、あなたはうんざりしています。
Simon Gillbee、2011

0

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

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.