如何在团队基础服务器中恢复变更集?

时间:2011-04-21 14:17:45

标签: c# .net asp.net version-control tfs

我是Team Foundation服务器的新手,有人提交了他们之前不应该做的更改。我需要恢复此更改集,以便当人们获得最新版本时,他们将无法获得这些更改。

我认为没有简单的方法可以做到这一点,有没有人有这方面的经验?

5 个答案:

答案 0 :(得分:6)

您无法真正回滚变更集。你要做的是:

  1. 找到您想要返回的变更集编号。
  2. 执行签出所有需要回滚的文件。
  3. 执行获取特定版本(与获取版本不同)并指定更改集编号,并选择使用更改集中的内容覆盖本地副本的选项。
  4. 执行将覆盖服务器上的内容的签到。
  5. 您必须为每个文件单独执行此操作。在那里,您可以查看具有回滚功能的TFS Power工具,它可以自动执行上面列出的手动步骤。

    祝你好运!

答案 1 :(得分:3)

我认为您正在寻找rollback命令: Rollback docs

答案 2 :(得分:1)

你可以通过一个漂亮的界面在VS2010中轻松完成,就像你使用Tortoise SVN一样,只要你在后端使用TFS 2010(确保这是以前的情况)你尝试以下,否则它将无法工作):

获取Team Foundation Server Power Tools December 2011

(安装后可能需要重新启动计算机)

然后在VS2010中转到View>其他Windows>源代码管理资源管理器

在“源代码管理资源管理器”窗口中右键单击该项目,然后选择“回滚” - 这将为您提供this article中显示的回滚对话框(请参阅“现在在UI中可用的回滚”部分,为您提供所有剩余的细节,以帮助您朝着正确的方向前进)。 界面有点笨拙,但应该做好。

答案 3 :(得分:0)

右键单击团队资源管理器中的代码,然后单击视图历史记录,然后逐个选择文件,右键单击文件选择获取特定版本,然后打开模型窗口。将类型组合框值最新版本更改为更改集编号,并将最新代码还原为上一个更改集。

希望这会有所帮助......

答案 4 :(得分:0)

您可以从Visual Studio命令提示符完成此操作,甚至不需要拥有代码的本地副本:

# create a temporary folder
mkdir some-workspace && cd some-workspace

# create a temporary workspace
tf workspace /new /collection:http://tfs-host:8080/tfs/some-collection some-workspace

# negate a specific changeset
tf rollback /changeset:some-changeset

# check in the rollback
tf checkin

# delete the temporary workspace
tf workspace /delete some-workspace

# delete the temporary folder
cd .. && rd some-workspace