我如何回滚TFS登机?

我想回滚一下我最近在TFS中做出的改变。 在Subversion中,这非常简单。 但是,这似乎是TFS令人难以置信的头痛:

选项1:获得以前的版本

  1. 手动获取每个文件的先前版本
  2. 检查编辑
  3. 失败 – 结帐(在VS2008)迫使我得到最新版本

选项2:获取TFS电动工具

  1. 下载团队基金会电动工具
  2. 从cmd行发出回滚命令
  3. 失败 – 如果还有其他未决更改,则不起作用

选项3:手动撤消更改

  1. 手动撤消我的更改,然后提交新的更改集

如何回滚到TFS中的以前的变更集?

  1. 下载并安装Team Foundation Power Tools 。
  2. 打开Visual Studio命令提示符
  3. 导航到TFS映射到的文件系统上的目录。 如果您不这样做,当您尝试回滚时,您会收到“无法确定工作区”错误
  4. 确保其他所有内容都已签入或搁置
  5. 运行tfpt回滚来调出界面。
  6. select您想要回滚的变更集
  7. 检入回滚的文件的新版本

这个工具的一个很大的缺点就是它要在合并前刷新工作区中的所有东西。 我通过为直接映射到受影响文件所在的源代码树中的位置的回滚创build新的工作空间来解决此问题。

如果您需要帮助来确定要回滚哪些变更集,我发现免费的Team Foundation Side Kicks加载项中的代码审查工具非常有用。

您的解决scheme#1将工作:1.手动获取每个文件的先前版本

  1. 检查编辑

  2. 签入文件并在出现提示时忽略服务器更改。

您失败的原因是您必须打开“获取最新版本的物品”选项。 通过转到工具…选项…源代码pipe理… Visual Studio Tema Foundation Server并取消选中“获取最新版本的项目”

干杯

已经将tbackup从tfpt.exe移到了Team Foundation版本控制工具tf.exe。

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]] 

在TFS 2010版本控制中,有两个选项可用于回滚(恢复)变更集。 首先select使用用户界面(如果您安装了最新版本的TFS 2010电动工具 )。

在TFS 2010的UI中回滚更改集

另一种select是使用TFS 2010版本控制命令行应用程序:

 tf.exe rollback 

我在这里可以find关于这两种方法的信息: http : //www.edsquared.com/2010/02/02/Rollback+Or+Undo+A+Changeset+In+TFS+2010+Version+Control.aspx

使您的选项1工作的另一种方法是颠倒步骤的顺序:

  1. 检出项目
  2. 获取特定版本到旧版本
  3. 检入(忽略“警告服务器版本更新”对话框)或在“挂起的更改”对话框的冲突部分,通过保留本地版本来解决冲突。

即使您已获取最新的结帐设置,这也可以正常工作。

作为参考,如果您使用的是TFS 2010 ,请参阅Rollback Command(Team Foundation版本控制)手册的链接。

要回滚特定的变更集 ,请转到Visual Studio命令提示符(2010) ,导航到您的TFS工作区目录,然后键入命令:

 tf rollback /changeset:C12345 

12345是你的变更编号。 在此之后,它会告诉你它做了什么日志,你将不得不整理合并冲突。

啊,刚刚发现这个CodePlex文章使用TFPT.exe (电源工具)回滚一个变更集。

希望这可以帮助你。

没有回滚选项实际上是TFS的function;)

要回滚更改:

  1. 看看你想要的任何特定版本的更改
  2. 编辑 – >全选 – >复制文件中的文字
  3. 检出服务器上的任何文件版本
  4. 粘贴到文件上并签入。

现在,所有在回滚之前的中间变更也被保存了! 多么伟大的function!

如果您执行了1次签入,而您只是想撤消签名,那么就会有一个与之关联的变更集。 在有问题的文件夹上做一个历史logging,看看坏的变化。 打开它看到的细节(所有文件更改等)。

我相信你可以恢复或撤消该屏幕上的变更集,但是当我试图做到这一点时,我的Visual Studio崩溃了。 /叹 – 我绝对分享你的痛苦。

我在哪里下载TFS在这个网站?

我认为团队基金会电动工具是要走的路。 如果有待处理的更改,则可以将其移至搁置组,然后在运行rollback命令之前撤消或检入所有未完成的更改。 有关更多信息,请参阅http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20undo%20a%20check-in&referringTitle=Source%20Control%20Practices%20at%20a%20Glance

Ben Scheirman – “更改集详细信息”对话框没有回滚function。

另一种select是TFSPlus 。 这个Visual Studio插件添加(其中包括)获取此版本命令的历史窗口。 如果您已经检出文件,则会将其replace为该版本。 如果你事后做一个检查,你将有效地回滚到该版本。

但是,它可以在单个文件上工作,而不是完整的更改集。

获取特定版本

版本 types下拉列表中selecttypes为更改集

如果你知道这个号码,使用Changeset …buttonfind你的Changeset或者只是input。

您具有特定的Changeset后。

查看

报到

这些解决scheme都没有为我工作戴夫罗伯茨解决scheme是最接近我实际上工作。 我没有获取启用最新版本的项目,但它似乎是一个服务器策略。

我的解决scheme是检查文件进行编辑,获取特定的版本,然后当检测到冲突使用合并工具(和手动合并没有任何更改),以便文件处于它的状态。

我打算去比较具体的版本,并复制整个文件,然后将其粘贴在旧的顶部。

仍然应该有一个更简单的方法来做到这一点!

上面的解决scheme是针对TFS2008的。 TFS2010具有内置的回滚function。 看到这篇文章的细节。

安装最新版本的TFS电动工具 (2011年8月),您可以右键单击更改集,然后select“回滚整个更改集 ”。 这并不容易。

它在这里可用: http : //visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f

它在上面的页面上的团队资源pipe理器增强下面暗示:

这个版本中的新function是能够轻松回滚版本控制中的更改。