How do I rollback a TFS check-in?

2019-01-10 04:10发布

I'd like to rollback a change I made recently in TFS. In Subversion, this was pretty straightforward. However, it seems to be an incredible headache in TFS:

Option 1: Get Prior Version

  1. Manually get prior version of each file
  2. Check out for edit
  3. Fail - the checkout (in VS2008) forces me to get the latest version

Option 2: Get TFS Power Tools

  1. Download Team Foundation Power Tools
  2. Issue rollback command from cmd line
  3. Fail - it won't work if there are any other pending changes

Option 3: Manually Undo Changes

  1. manually undo my changes, then commit a new changeset

Question

How do I rollback to a previous changeset in TFS?

17条回答
该账号已被封号
2楼-- · 2019-01-10 05:00
  1. Download and install Team Foundation Power Tools.
  2. Open up the Visual Studio command prompt
  3. Navigate to the directory on the file system that TFS is mapped to. If you don't do this you'll get an "Unable to determine the workspace" error when you try to roll back
  4. Make sure everything else is checked in or shelved
  5. run tfpt rollback to bring up the interface.
  6. Choose the changesets you want to rollback
  7. Check in the new versions of the files you rolled back

The big disadvantage of the tool is that it will want to refresh everything in your workspace before you can merge. I got around this issue by creating a new workspace just for the rollback which mapped directly to the place in the source tree where the affected files were.

If you need help to figure out which changesets to roll back, I find the code review tool in the free Team Foundation Side Kicks add-in very helpful.

查看更多
淡お忘
3楼-- · 2019-01-10 05:00

For reference, if you're using TFS 2010, here's the link to Rollback Command (Team Foundation Version Control) manual.

To rollback a particular changeset, go to Visual Studio Command Prompt (2010), navigate to your TFS workspace directory, and type in command:

tf rollback /changeset:C12345

where 12345 is your changeset number. After this, it will show you the log of what it did and you'll have to sort out merge conflicts.

查看更多
乱世女痞
4楼-- · 2019-01-10 05:07

Ben Scheirman - the Changeset Details dialog does not have rollback functionality.

查看更多
淡お忘
5楼-- · 2019-01-10 05:08

You have two options for rolling back (reverting) a changeset in TFS 2010 Version Control. First option is using the User Interface (if you have the latest version of the TFS 2010 Power Tools installed).

Rollback Changeset in UI for TFS 2010

The other option is using the TFS 2010 version control command-line application:

tf.exe rollback

I have information about both approaches on my blog post available here: http://www.edsquared.com/2010/02/02/Rollback+Or+Undo+A+Changeset+In+TFS+2010+Version+Control.aspx

查看更多
The star\"
6楼-- · 2019-01-10 05:08

Another way to make your option 1 work is to reverse the order of the steps:

  1. Check Out the items
  2. Get Specific Version to the old version
  3. Check in (ignoring the "warning server version is newer" dialog) OR on the conflicts section of the Pending Changes dialog resolve the conflicts by keeping the local version.

This will work even if you have Get Latest On Checkout set.

查看更多
登录 后发表回答