如何回退TFS登机手续?

时间:2020-03-05 18:44:28  来源:igfitidea点击:

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

选项1:获取先前版本

  • 手动获取每个文件的先前版本
  • 签出进行编辑
  • 失败-结帐(在VS2008中)迫使我获取最新版本

选项2:获取TFS电动工具

  • 下载Team Foundation电动工具
  • 从cmd行发出回滚命令
  • 失败-如果还有其他待处理的更改,它将不起作用

选项3:手动撤消更改

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

问题

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

解决方案

回答

如果我们进行了1个签入,而我们只想撤消它,则它具有一个与之关联的变更集。在有问题的文件夹上进行历史记录以查看错误的变更集。打开它可以查看详细信息(所有文件都已更改,等等)。

我相信我们可以从该屏幕还原或者撤消更改集,但是当我尝试执行此操作时,Visual Studio刚刚崩溃了。 / sigh-我一定会分享你的痛苦。

我在哪里可以在此站点上下调TFS?

回答

我认为Team Foundation Power Tools是必经之路。如果有暂挂的更改,则可以将它们移到架子集,然后撤消或者签入所有暂挂的更改,然后再运行rollback命令。有关更多信息,请参见http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20undo%20a%20check-in&referringTitle=Source%20Control%20Practices%20at%20a%20Glance。

回答

啊,刚刚找到此CodePlex文章,内容涉及使用TFPT.exe(强大工具)回滚变更集。

希望这可以帮助你。

回答

解决方案#1将起作用:
1.手动获取每个文件的先前版本

  • 签出进行编辑
  • 检入文件,并在出现提示时忽略服务器更改。

它对我们失败的原因是因为我们必须拥有
启用了"在检出时获取最新版本的项目"选项。
通过转到工具...选项...源代码控制... Visual Studio Tema Foundation Server并取消选中"在检出时获取最新版本的项目"来关闭此选项

干杯

回答

  • 下载并安装Team Foundation Power Tools。
  • 打开Visual Studio命令提示符
  • 导航到TFS映射到的文件系统上的目录。如果我们不这样做,则在尝试回滚时会收到"无法确定工作区"错误
  • 确保其他所有内容都已签入或者搁置
  • 运行tfpt rollback调出界面。
  • 选择要回滚的变更集
  • 检入我们回滚的文件的新版本

该工具的最大缺点是,它需要在合并之前刷新工作空间中的所有内容。通过为回滚创建一个新的工作区来解决这个问题,该工作区直接映射到源树中受影响文件所在的位置。

如果我们需要帮助找出哪些变更集可以回滚,我发现免费的Team Foundation Side Kicks加载项中的代码查看工具非常有用。

回答

Ben Scheirman的"变更集详细信息"对话框不具有回滚功能。

回答

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

  • 签出物品
  • 获取特定版本到旧版本
  • 签入(忽略"警告服务器版本较新"对话框),或者在"待更改"对话框的"冲突"部分上,通过保留本地版本来解决冲突。

即使我们设置了"在结帐时获取最新信息",此方法也将起作用。

回答

另一个选择是TFSPlus。此Visual Studio插件将(其中包括)"获取此版本"命令添加到历史记录窗口。如果我们已签出文件,它将用该版本替换。如果之后进行签入,则将有效地回滚到该版本。

但是,它适用于单个文件而不是完整的变更集。

回答

使用TFS powertools是最好的方法http://rajputyh.blogspot.com/2008/08/change-set-rollback-using-tfs-power.html

回答

这些解决方案都不适合我Dave Roberts解决方案与我实际使用的解决方案最接近。
我没有启用"在签出时获取项目的最新版本",但是这似乎是服务器策略。

我的解决方案是检出文件以进行编辑,获取特定版本,然后在检测到冲突时使用合并工具(并手动合并所有更改),以使文件保持原状。

我打算将其与特定版本进行比较,然后复制整个文件,然后将其粘贴到旧文件的顶部。

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

回答

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

要回滚更改:

  • 查看我们想要的任何特定版本的更改
  • 编辑->全选->复制文件中的文本
  • 检出服务器上文件的任何版本
  • 粘贴文件并签入。

现在,我们还可以保存回滚之前的所有中间变更集!多么伟大的功能!