- 手动获取每个文件的先前版本
- 签出以进行编辑
- 失败 - 在 VS2008 中签出会强制获取最新版本
- 下载 Team Foundation Power Tools
- 从命令行发出回滚命令
- 失败 - 如果有任何其他待处理更改,则无法工作
- 手动撤销我的更改,然后提交一个新的更改集
该工具的主要缺点是在合并之前它会希望刷新您工作区中的所有内容。我通过创建一个专门用于回滚的新工作区,并直接映射到受影响文件所在的源树位置来解决了这个问题。
如果需要帮助确定要回滚哪些更改集,我发现免费的 Team Foundation Side Kicks 插件中的代码审查工具非常有用。
你的解决方案#1可以奏效: 1. 手动获取每个文件的先前版本
进行编辑
签入文件并在提示时忽略服务器更改。
它对你失败的原因是因为你必须开启“检出时获取项目的最新版本”选项。 通过转到工具...选项...源代码控制...Visual Studio团队基础架构服务器并取消选中“检出时获取项目的最新版本”来关闭此选项。
干杯
回滚功能已经从tfpt.exe移动到了tf.exe,即Team Foundation版本控制工具。
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起作用的另一种方法是颠倒步骤顺序:
即使您已设置在检出时获取最新版本,此方法也适用。
在 TFS 2010 版本控制中,有两种回滚(还原)更改集的选项。第一种选择是使用用户界面(如果已安装最新版本的 TFS 2010 Power Tools)。
另一种选择是使用TFS 2010版本控制命令行应用程序:
tf.exe rollback
我在博客帖子中提供了有关这两种方法的信息,可在此处找到:http://www.edsquared.com/2010/02/02/Rollback+Or+Undo+A+Changeset+In+TFS+2010+Version+Control.aspx
作为参考,如果您正在使用TFS 2010,这里是Rollback Command (Team Foundation Version Control)手册的链接。
要回滚特定的变更集,请转到Visual Studio Command Prompt (2010),导航到您的TFS工作区目录,并输入以下命令:
tf rollback /changeset:C12345
这里的12345
代表你的变更集编号。之后,它会显示所做的日志,您需要解决合并冲突。
没有回滚选项实际上是TFS的一个功能特性 ;)
要回滚更改:
现在,回滚之前的所有中间更改集也都保存了!多么棒的功能!
获取特定版本
在版本下拉菜单中选择 类型,将其设置为变更集
使用"查找变更集..."按钮来查找您的变更集,或者直接输入编号(如果您知道该编号)
获取特定的变更集之后
检出
检入