How to rollback in Visual Studio TFS?

Viewed 66164

I'm working on one sub-module of a large project for which is use VSTS 2008.

I have a need to rollback the module to an earlier version (about 4 check-ins previous). I tried to do this in the Visual Studio UI, and finally realized there is no option to rollback.

After some research, I determined there is a power tools download that purports to support rollback via a command-line tool. However, there appears to be virtually no documentation for it.

Can anyone describe step by step how to rollback to a previous version in VS2008? (Using Power Tools or otherwise).

Bonus question--anyone know if we might get more robust rollback support in VS2010?

7 Answers

Right-click on the folder in Source Control Explorer. Choose Get Specific Version. Choose the version that you want to get (by changeset, date, label, etc).

EDIT: At this point your local version will be the version that you want. Check out the changed files and then check them back in. This will bring up the merge wizard and it will probably be complaining about how the server has a newer version than you do. Go through the wizard and merge the files the way you want them (one of the options is to discard the server changes, which is what it sounds like you want). At the end of this process, it may tell you that no files were checked in due to the merge process (or something of that nature), just hit OK and then check in again. This should accomplish what you need.

Bonus question--anyone know if we might get more robust rollback support in VS2010?

Yes. Unlike the Power Tools, which is coded directly against the existing 2008 client API, TFS 2010 has a new API for executing rollbacks directly on the server. This makes them far faster and more reliable, while adding functionality that wasn't possible at all in 2008 such as reverting merge history.

From the MSDN article How to: Roll Back a Changeset (VS2008 although other versions are available)

To revert to an earlier version of a file

  1. In Source Control Explorer, right-click the file that you want to roll back, and then click Get specific version. The Get dialog box appears.
  2. Under Type, click Changeset.
  3. Under Changeset, click the ellipses (…).
  4. In the Find Changesets dialog box, either use the default values or specify criteria for your search, and then click Find.
  5. Under Results, click the changeset that contains the version to which you want to revert the file, and then click OK.
  6. In the Get dialog box, select the Overwrite writable files that are not checked out check box, and then click Get. The earlier version of the file is copied to your local working folder.
  7. In Source Control Explorer, right-click the file, and then click Check Out for Edit.
  8. In the Check Out dialog box, click Check Out.
  9. In Source Control Explorer, right-click the file again, and then click Check In Pending Changes.
  10. In the Check In - Source Files dialog box, click the file, and then click Check in. The Resolve Conflicts dialog box appears, and a message explains that no files have been checked in because the two versions have changes that conflict.
  11. In the message box, click OK. The Pending Changes – Conflicts window appears.
  12. (Optional) In the toolbar of the Pending Changes window, click Compare Local to Server. The server and local copies appear side by side so that you can review your decision before you roll back the changes
  13. In the Pending Changes window, click Keep Local Version.
  14. In Source Control Explorer, right-click the file, and then click Check In Pending Changes.
  15. In the Check In - Source Files dialog box, click Check in.
Related