VSTF Rollback 操作
最近遇到要把有些项目需要做回滚操作,发现TFS的UI上没有回滚的操作。
经过百度,查到一个CSDN上的博主发了一种方法,经过验证,那种方法是错误的:
他通过先获取指定变更集-》签出-》签回去,以达到回滚的目的。
表面上看是挺合理的,但是如果其中要回滚到的变更集有删除操作,那就会导致一些错误了。
例如:变更集5中的一个文件test.cs,我将其删除,签入(变更集6)。然后再获取变更集5的test.cs,再签入(变更集7)。这时,变更集7中的test.cs便不能匹配到变更集5中的test.cs,因此,如果你查看test.cs的历史记录,只会有变更集7,之前的版本只能通过到上级目录检索到。
而且还会导致一些其他的异常。说了这么多,那正确的方法应该怎么做呢?
应该需要先下载Team foundation Server Power Tools:
下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyId=FBD14EEA-781F-45A1-8C46-9F6BA2F68BF0&displaylang=en
https://marketplace.visualstudio.com/items?itemName=TFSPowerToolsTeam.MicrosoftVisualStudioTeamFoundationServer2015Power
使用里面命令行的方式来回滚,微软将一些危险的操作都放在了命令行里面,例如销毁操作,强制签入操作等。这些应该由熟悉TFS的管理员来操作,这样能避免带来一些不必要的损失。
回滚使用的是power tools中的tfpt rollack命令。tfpt需要运行在powershell中。
具体步骤:
1.先在Team Explorer中将要回滚的工作区映射到本地
2.打开开始菜单中power tools里的powershell
3.使用cd命令导航到你映射到的目录,例如cd c:\project1 (假如你将项目映射到c:\project1目录)
4.输入tfpt rollback,它会提示你是否获取最新版本,选YES
5.选择要回滚的变更集(注意:这个是你要撤销操作的变更集)
6.回滚之后,还必须执行签入操作,回滚在被提交到服务器。
注意事项:
执行rollback的时候必须保证所有本工作区中的项目没有挂起更改,不单单是你要回滚的目录下的内容没有挂起哦。否则,你就会收到如下信息:
Cannot proceed because you have pending changes in your workspace. You must move
to a shelveset, undo, or check in all pending changes before reverting a change
set.
唉。。。不知道微软是为了那根筋出问题了,堂堂TFS竟然连rollback功能都没有,只能用Team Foundation PowerToys,通过命令行或者GUI界面(部分命令)来扩展VSTF的功能,可以从MS官方网站下载.
-----------------下面是网上找到的用法-------------------
这里要注意的是在运行TF命令时,需要先用CD跳转到一个workspace里,同时要在环境系统变量Path中设置好TFPT的路径。这样的话TF命令才能找到一个workspace。
Team Foundation Server Power Tools
接下来要介绍的是一组几乎对每个团队都具有巨大价值的实用程序:Visual Studio Team System 2008 Team Foundation Server Power Tools (go.microsoft.com/fwlink/?LinkId=120836)。按照发布时间,2008 年 3 月的版本是最新版本。
这 组工具包括 TFPT.exe、Visual Studio Team System Process Editor、Team Foundation Server Best Practice Analyzer、工作项模板、自定义签入策略、Build Notification 小程序以及 TFSServerManager 客户端。下载内容中包括一个详细的 Microsoft® Word 文档,该文档介绍了这些工具的目录以及使用方法。
TFPT.exe 是一个位于 %Program Files%\Microsoft Team Foundation Server 2008 Power Tools 中的命令行工具。它可以扩展主要用于处理 TFS 的版本控制子系统的内置 TF.exe 命令行工具。它当前支持 19 个命令(参见图 2)。
图 2 TFPT.exe 命令
命令 | 描述 |
---|---|
tfpt annotate | 逐行显示文件的更改信息。 |
tfpt bind | 将 VSS 绑定解决方案转换为 TFS 绑定解决方案。 |
tfpt changedocurl | 更新有关 TFS 绑定的 Office 文档的服务器信息。 |
tfpt createteamproject | 创建团队项目。 |
tfpt destroygl | 销毁全局列表。 |
tfpt destroywi | 销毁一个或多个工作项。 |
tfpt destroywitd | 销毁工作项类型及其中的工作项。 |
tfpt getcs | 仅获得特定变更集中的更改。 |
tfpt history | 显示项目的历史记录。 |
tfpt online | 挂起对可写文件的添加、编辑和删除操作。 |
tfpt query | 查询工作项。 |
tfpt review | 审核(区别/查看)工作区更改。 |
tfpt rollback | 挂起更改以回滚变更集。 |
tfpt treeclean | 删除不在版本控制下的文件。 |
tfpt tweakui | 增强客户端连接到 TFS 的方式。 |
tfpt unshelve | 取消搁置挂起的更改到工作区中。 |
tfpt uu | 撤消对工作区中未更改的文件的更改。 |
tfpt workitem | 创建、更新或查看工作项。 |
tfpt workspace | 更新工作区。 |
根 据您选择的命令,您可能需要提供其他参数,而且,其中一些命令(如 rollback 命令)会在您执行该命令后提供 GUI 体验。请注意,其中很多命令需要您执行已映射到 TFS 工作区的文件夹中的工具。您希望修改路径,以便轻松地从任一本地工作区执行 TFPT.exe。
如 果您已使用 Team System 很长一段时间,则可能会注意到一个新命令:createteamproject。对于某些用户来说,可能期待它很久了。最需要注意的一点是:安装 Visual Studio 2008 客户端时必须应用 SP1 才能正常执行此命令。在使用过程中,我发现非常有用的其他命令包括 rollback、treeclean 和 workspace。您可以亲身体验一下。
还有很多与 Team Foundation Server Power Tools 中的版本控制有关的精华内容。首先是自定义签入策略包。我曾在 2007 年 11 月这一期的《MSDN® 杂志》中详细介绍了签入策略 (msdn.microsoft.com/magazine/cc163320)。它可以向您的安装中添加很多有用的签入策略。其中 Custom Path 策略和 Changeset Comments 策略是我在工作中必不可少的两个策略。
其 次,您会在 Visual Studio 中发现很多增强功能。Microsoft 在 TFS 2008 中添加了一些 Team Foundation Server 2005 Power Tools 的增强功能,例如注释功能。但是,其他一些好东西仍然需要 Power Tool。例如,您可以从 Source 命令中获得“查找”功能、Quick Label 功能,以及一个很简单但相当受欢迎的功能,该功能用于在“Windows 资源管理器”中打开“源代码管理资源管理器”中所选的文件夹(参见图 3)。
图 3 在 Windows 资源管理器中打开文件夹(单击图像可查看大图)
每 次创建团队项目都要指定一个过程模板。Microsoft 提供了两个现成模板。尽管如此,不止一个客户希望修改这两个基本过程模板。大多数团队需要将附加字段添加到其部分工作项中,或希望将自己的公司徽标添加到 报表中、将 Bug(错误)工作项的名称更改为 Defect(缺陷),或者将自己的文档添加到 SharePoint 过程指南中。
Microsoft 做了大量努力来公开扩展性点以启用这些类型的自定义项。但是,现成体验确实还需要改进,除非您专门从事编辑过程模板的工作。如果没有 Power Tool,您必须将过程模板下载到您的本地磁盘,将其置于版本控制下,才能开始编辑这些文件。
您 可以使用类似于 Business Intelligence Development Studio 中提供的优秀的 GUI 设计器编辑部分文件,例如报表定义文件。但是,对于其他文件类型(如过去常见的工作项类型定义文件),则需要使用记事本或收藏夹 XML 编辑器并开始删除尖括号。如果您是第一次修改过程模板,则这不会是最佳体验。
幸 运的是,Power Tool 中包含一个过程模板编辑器。安装完成后,您可以在“Visual Studio 工具”菜单中找到“过程编辑器”菜单命令。此工具允许您在磁盘上编辑下载模板的组件(您也可以编辑一些项目,如联机工作项类型定义,但我一般不建议这样 做)。例如,您可以从 Microsoft Solutions Framework for Agile Software Development 版本 4 模板中打开“方案”工作项类型,在提供该方案描述的功能后,定义一个可跟踪所选选项的新字段,然后将此字段添加到工作项布局,然后预览该更改(参见图 4),在此过程中不会看到任何 XML。
图 4 修改方案工作项类型定义(单击图像可查看大图)
也 就是说,随着您逐渐适应修改过程模板,您可能会发现直接编辑 XML 文件更方便。值得高兴的是,Process Editor 也会有所帮助。在大多数屏幕上,您可以看到“查看 XML”按钮,该按钮会显示与您编辑的特定功能相关的 XML 片断。2008 年 3 月版中一个突出的增强功能是编辑器中的更新支持,它可以向工作项类型定义添加自定义控件。在此版本之前的版本中,如果您打开使用自定义控件的工作项类型定 义,会出现错误提示。
Power Tool 中另一个与工作项相关的功能是工作项模板。您可以为特定工作项类型创建一个包含公用默认项目的工作项模板。然后当您需要打开新的错误(例如选择该模板) 时,它将为您预填充该工作项。2008 年 3 月版中的增强功能包括在“团队资源管理器”窗口中包含自身节点的工作项模板。
在 过去的这些年里,Brian Harry 在自己的博客中发布了与 Microsoft 使用 TFS 相关的统计数据。这些发布内容包括版本控制下的项目数量、服务器运行时间以及用户数量等数据。在 2008 年 3 月版中,Brian 公开了自己用来收集这些数据的工具,就是 TFSServerManager 客户端。此工具提供了一种简单的方法,可以为您的开发团队收集自己的有关使用 TFS 的统计数据。
Team Foundation Server Best Practices Analyzer 是一种诊断工具,可从 TFS 部署中收集配置信息并对其进行测试。然后,它使用特定规则分析该信息,然后以信息、警告或错误消息的形式向您返回结果。除此之外,它还提供文章链接以帮助 您解决所有警告和错误。
此 工具无论作为预安装步骤还是帮助您维护并监视 TFS 安装都很有用。您会发现此工具附带一个 Windows 帮助文件形式的文档 (TfsBpa.chm)。不过,只有先安装 Windows PowerShell™ 后,才能安装 Best Practices Analyzer。
最 后,我们讨论与 Team Build 相关的 Build Notification Power Tool。此工具在 Windows 任务栏的通知区域运行。您可以将其配置为监视 TFS 安装中的特定构建定义集,然后让它通知您遇到的各种事件,包括构建何时排入队中、何时开始或完成。当其中一个事件发生时(如某一个构建开始排队等候),屏 幕右下角将出现一条消息(参见图 5)。
图 5 新构建的通知