我正在开发一个使用 VSTS 2008 的大型项目的子模块。
我需要将模块回滚到早期版本(之前大约 4 次签入)。我尝试在 Visual Studio UI 中执行此操作,最后意识到没有回滚选项。
经过一番研究,我确定有一个电动工具下载,声称通过命令行工具支持回滚。但是,它似乎几乎没有文档。
谁能逐步描述如何在VS2008中回滚到以前的版本?(使用电动工具或其他方式)。
额外的问题——有人知道我们是否会在 VS2010 中获得更强大的回滚支持?
我正在开发一个使用 VSTS 2008 的大型项目的子模块。
我需要将模块回滚到早期版本(之前大约 4 次签入)。我尝试在 Visual Studio UI 中执行此操作,最后意识到没有回滚选项。
经过一番研究,我确定有一个电动工具下载,声称通过命令行工具支持回滚。但是,它似乎几乎没有文档。
谁能逐步描述如何在VS2008中回滚到以前的版本?(使用电动工具或其他方式)。
额外的问题——有人知道我们是否会在 VS2010 中获得更强大的回滚支持?
右键单击源代码管理资源管理器中的文件夹。选择获取特定版本。选择您想要获取的版本(通过变更集、日期、标签等)。
编辑:此时您的本地版本将是您想要的版本。检查更改的文件,然后将它们重新签入。这将打开合并向导,它可能会抱怨服务器的版本比你的版本更新。通过向导并按照您想要的方式合并文件(其中一个选项是放弃服务器更改,这听起来像您想要的那样)。在此过程结束时,它可能会告诉您由于合并过程(或类似性质的东西)没有签入任何文件,只需点击确定,然后再次签入。这应该可以完成您所需要的。
幸运的是,这在 TFS 2012 中变得更加容易。现在 GUI 提供了一个回滚选项。
MSDN提供了有关如何执行此操作以及可用选项的更多信息。以下是 MSDN 关于如何回滚到特定版本的文本:
要回滚到特定版本:
- 在源代码管理资源管理器中,选择一个项目,打开其快捷菜单,然后选择回滚。
- 在回滚对话框中,选择回滚到特定版本。
当然,您也可以回滚整个变更集或变更集集合。如果您愿意,您还可以轻松回滚到特定时间点。
有一种方法,但我不觉得它很漂亮.. 打开 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 Power Tools在 Visual Studio 2010 UI 中添加了完整的回滚支持。
下载链接:http: //visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f
此功能也包含在 TFS 2012 中。
额外的问题——有人知道我们是否会在 VS2010 中获得更强大的回滚支持?
是的。与直接针对现有 2008 客户端 API 进行编码的 Power Tools 不同,TFS 2010 具有用于直接在服务器上执行回滚的新 API。这使它们更快、更可靠,同时添加了 2008 年根本不可能的功能,例如恢复合并历史记录。
来自 MSDN 文章How to: Roll Back a Changeset (VS2008 尽管其他版本可用)
恢复到文件的早期版本
- 在源代码管理资源管理器中,右键单击要回滚的文件,然后单击获取特定版本。出现获取对话框。
- 在类型下,单击变更集。
- 在变更集下,单击省略号 (...)。
- 在“查找变更集”对话框中,使用默认值或指定搜索条件,然后单击“查找”。
- 在结果下,单击包含要将文件还原到的版本的变更集,然后单击确定。
- 在获取对话框中,选中覆盖未签出的可写文件复选框,然后单击获取。该文件的早期版本将复制到您的本地工作文件夹。
- 在源代码管理资源管理器中,右键单击该文件,然后单击“签出以进行编辑”。
- 在“签出”对话框中,单击“签出”。
- 在 Source Control Explorer 中,再次右键单击该文件,然后单击 Check In Pending Changes。
- 在“签入 - 源文件”对话框中,单击该文件,然后单击“签入”。将出现“解决冲突”对话框,并显示一条消息说明没有签入任何文件,因为这两个版本的更改存在冲突。
- 在消息框中,单击确定。待更改 - 冲突窗口出现。
- (可选)在 Pending Changes 窗口的工具栏中,单击 Compare Local to Server。服务器和本地副本并排显示,以便您在回滚更改之前查看您的决定
- 在 Pending Changes 窗口中,单击 Keep Local Version。
- 在源代码管理资源管理器中,右键单击该文件,然后单击签入挂起的更改。
- 在“签入 - 源文件”对话框中,单击“签入”。
在Visual Studio 2013中,这变得更容易了。要回滚,请执行以下操作: