如何在Visual Studio TFS中回滚?

我正在使用VSTS 2008的大型项目的一个子模块。

我需要将模块回滚到较早的版本(以前大约4次签入)。 我试图在Visual Studio UI中做到这一点,终于意识到没有select回滚。

经过一番研究,我确定有一个电源工具下载,旨在支持通过命令行工具回滚。 但是,似乎没有任何文件。

任何人都可以一步一步描述如何回滚到VS2008中的以前的版本? (使用电动工具或其他)。

奖金的问题 – 任何人都知道,如果我们可以在VS2010中获得更强大的回滚支持?

在Source Control Explorer中右键单击该文件夹。 select获取特定版本。 select你想要得到的版本(通过更改集,date,标签等)。

编辑:在这一点上你的本地版本将是你想要的版本。 查看更改后的文件,然后将其复选回来。这将启动合并向导,可能会抱怨服务器的版本比您更新。 通过向导,并按照你想要的方式合并文件(其中一个选项是放弃服务器更改,这听起来就像你想要的)。 在这个过程结束时,它可能会告诉你,由于合并过程(或其他性质)没有检入任何文件,只需点击OK,然后再次检入。 这应该完成你所需要的。

幸运的是,在TFS 2012中这样做很容易。现在有一个来自GUI的Rollback选项。

MSDN有关于如何做到这一点的更多信息,以及可用的选项。 以下是MSDN关于如何回滚到特定版本的文本:

要回滚到特定的版本:

  1. 在源代码pipe理资源pipe理器中,select一个项目,打开其快捷菜单,然后select回滚。
  2. 在“回滚”对话框中,select“回滚到特定版本”。

您当然也可以回滚整个变更集或一组变更集。 如果您愿意,还可以轻松回滚到特定的时间点。

有一种方法,但我不觉得它漂亮..打开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 

2011年8月份的TFS电源工具在Visual Studio 2010 UI中添加了完整的回滚支持。

下载链接: http : //visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f

这个function也包含在TFS 2012中。

奖金的问题 – 任何人都知道,如果我们可以在VS2010中获得更强大的回滚支持?

是。 与直接针对现有2008客户端API编码的电源工具不同,TFS 2010具有用于直接在服务器上执行回滚的新API。 这使得它们更快,更可靠,同时增加了2008年不可能完成的function,例如恢复合并历史logging。

从MSDN文章如何:回滚更改集 (VS2008,虽然其他版本可用)

恢复到文件的早期版本

  1. 在源代码pipe理资源pipe理器中,右键单击要回滚的文件,然后单击“获取特定版本”。 出现获取对话框。
  2. 在types下,单击更改。
  3. 在更改集下,单击省略号(…)。
  4. 在“查找更改集”对话框中,使用默认值或为search指定条件,然后单击“查找”。
  5. 在“结果”下,单击包含要还原文件的版本的变更集,然后单击“确定”。
  6. 在“获取”对话框中,选中“覆盖未签出的可写入文件”checkbox,然后单击“获取”。 该文件的早期版本被复制到您的本地工作文件夹。
  7. 在源代码pipe理资源pipe理器中,右键单击该文件,然后单击检出编辑。
  8. 在签出对话框中,单击签出。
  9. 在源代码pipe理资源pipe理器中,再次右键单击该文件,然后单击检入挂起的更改。
  10. 在“检入 – 源文件”对话框中,单击该文件,然后单击“检入”。出现“解决冲突”对话框,并显示一条消息,说明没有检入任何文件,因为两个版本之间存在冲突。
  11. 在消息框中,单击确定。 挂起的更改 – 冲突窗口出现。
  12. (可选)在“待定更改”窗口的工具栏中,单击“比较本地到服务器”。 服务器和本地副本并排显示,以便您可以在回滚更改之前查看您的决定
  13. 在“等待更改”窗口中,单击“保留本地版本”。
  14. 在源代码pipe理资源pipe理器中,右键单击该文件,然后单击检入挂起的更改。
  15. 在“检入 – 源文件”对话框中,单击“签入”。

Visual Studio 2013中,这变成了一个更容易的任务。 要回滚,请执行以下操作:

  1. 源代码pipe理资源pipe理器中select解决scheme/项目
  2. 右键单击,然后select“查看历史logging”
  3. 在历史视图中,select要回滚的变更集
  4. 右键单击,然后select查看更改集详细信息。 这将打开团队资源pipe理器。
  5. 在团队资源pipe理器中,单击“回滚”: 团队浏览器
  6. 为了使回滚永久,你需要现在登记 。 或者,您可以对回滚版本进行更改,然后签入。