web-dev-qa-db-ja.com

Visual Studio TFSでロールバックする方法

VSTS 2008を使用する大規模プロジェクトの1つのサブモジュールに取り組んでいます。

モジュールを以前のバージョンにロールバックする必要があります(以前の4回のチェックイン)。 Visual Studio UIでこれを実行しようとしましたが、最終的に実現しましたロールバックするオプションはありません。

いくつかの調査の結果、コマンドラインツールを介したロールバックをサポートすることを目的とした電動ツールのダウンロードがあると判断しました。ただし、ドキュメントはほとんどないようです。

VS2008で以前のバージョンにロールバックする方法をステップごとに説明できますか? (電動工具などを使用)。

ボーナスの質問-VS2010でより堅牢なロールバックサポートを取得できるかどうかは誰でもわかりますか?

50
alchemical

ソース管理エクスプローラーでフォルダーを右クリックします。特定バージョンの取得を選択します。取得するバージョンを選択します(変更セット、日付、ラベルなど)。

編集:この時点で、ローカルバージョンが目的のバージョンになります。変更されたファイルをチェックアウトしてから再度チェックインします。これにより、マージウィザードが表示され、サーバーのバージョンがどのように新しいかについて文句を言うでしょう。ウィザードを実行して、希望する方法でファイルをマージします(オプションの1つは、サーバーの変更を破棄することです。これは、希望どおりに聞こえます)。このプロセスの最後に、マージプロセス(またはその性質のもの)のためにファイルがチェックインされなかったことを通知する場合があります。OKを押してから再度チェックインします。これにより、必要なものが達成されます。

38
Brett Widmeier

これは幸運にもTFS 2012ではるかに簡単になりました。現在、GUIからのロールバックオプションがあります。

[〜#〜] msdn [〜#〜] の実行方法と使用可能なオプションに関する詳細情報があります。特定のバージョンにロールバックする方法に関するMSDNのテキストを次に示します。

特定のバージョンにロールバックするには:

  1. ソース管理エクスプローラーで、アイテムを選択し、ショートカットメニューを開き、[ロールバック]を選択します。
  2. [ロールバック]ダイアログボックスで、[特定のバージョンへのロールバック]を選択します。

もちろん、変更セット全体または変更セットのコレクションをロールバックすることもできます。また、必要に応じて特定の時点に簡単にロールバックすることもできます。

33
René

そこに[〜#〜] is [〜#〜]方法がありますが、それはきれいではありません。Visual Studioコマンドプロンプトを開き、..

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>tf rollback -?
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]]

Versionspec:
    Date/Time         D"any .Net Framework-supported format"
                      or any of the date formats of the local machine
    Changeset number  Cnnnnnn
    Label             Llabelname
    Latest version    T
    Workspace         Wworkspacename;workspaceowner
12
Andrei Rînea

2011年8月のTFS Power Tools は、完全なロールバックサポートをVisual Studio 2010 UIに追加しました。

ダウンロードリンク: http://visualstudiogallery.msdn.Microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f

この機能はTFS 2012にも含まれています。

10
Warren Rumak

MSDNの記事から 方法:変更セットをロールバックする (他のバージョンが利用可能ですが、VS2008)

ファイルを以前のバージョンに戻すには

  1. ソース管理エクスプローラーで、ロールバックするファイルを右クリックし、[特定のバージョンの取得]をクリックします。 [取得]ダイアログボックスが表示されます。
  2. [タイプ]で、[変更セット]をクリックします。
  3. [チェンジセット]で、楕円(…)をクリックします。
  4. [変更セットの検索]ダイアログボックスで、既定値を使用するか、検索条件を指定して、[検索]をクリックします。
  5. [結果]で、ファイルを元に戻すバージョンを含む変更セットをクリックし、[OK]をクリックします。
  6. [取得]ダイアログボックスで、[チェックアウトされていない書き込み可能なファイルを上書きする]チェックボックスをオンにして、[取得]をクリックします。ファイルの以前のバージョンがローカル作業フォルダーにコピーされます。
  7. ソース管理エクスプローラーで、ファイルを右クリックし、[編集用にチェックアウト]をクリックします。
  8. [チェックアウト]ダイアログボックスで、[チェックアウト]をクリックします。
  9. ソース管理エクスプローラーで、ファイルを再度右クリックし、[保留中の変更をチェックイン]をクリックします。
  10. [チェックイン-ソースファイル]ダイアログボックスで、ファイルをクリックし、[チェックイン]をクリックします。[競合の解決]ダイアログボックスが表示され、2つのバージョンに競合する変更があるためファイルがチェックインされていないことを説明するメッセージが表示されます。
  11. メッセージボックスで[OK]をクリックします。 [保留中の変更-競合]ウィンドウが表示されます。
  12. (オプション)「保留中の変更」ウィンドウのツールバーで、「ローカルとサーバーの比較」をクリックします。サーバーとローカルコピーが並んで表示されるため、変更をロールバックする前に決定を確認できます。
  13. [保留中の変更]ウィンドウで、[ローカルバージョンを保持]をクリックします。
  14. ソース管理エクスプローラーで、ファイルを右クリックし、[保留中の変更をチェックイン]をクリックします。
  15. [チェックイン-ソースファイル]ダイアログボックスで、[チェックイン]をクリックします。
6
John MacIntyre

ボーナスの質問-VS2010でより堅牢なロールバックサポートを取得できるかどうかは誰でもわかりますか?

はい。既存の2008クライアントAPIに対して直接コーディングされているPower Toolsとは異なり、TFS 2010には、サーバー上で直接ロールバックを実行するための新しいAPIがあります。これにより、マージ履歴を元に戻すなど、2008年にはまったく不可能だった機能を追加しながら、はるかに高速で信頼性の高いものになります。

6
Richard Berg

Visual Studio 2013では、これは簡単なタスクになりました。ロールバックするには、次の手順を実行します。

  1. Source Control Explorerで、ソリューション/プロジェクトを選択します
  2. 右クリックして、「履歴の表示」を選択します
  3. 履歴ビューで、ロールバックする変更セットを選択します
  4. 右クリックして、変更セットの詳細を表示を選択します。これにより、チームエクスプローラーが開きます。
  5. チームエクスプローラーで、「ロールバック」をクリックします。
    Team Explorer
  6. ロールバックを永続的にするには、チェックインする必要があります。または、ロールバックされたバージョンに変更を加えてからチェックインすることができます。
1
Matt