【问题标题】:Issue with rolling back a changeset in TFS 2010回滚 TFS 2010 中的变更集的问题
【发布时间】:2013-10-24 15:05:23
【问题描述】:

我的目标是让我的代码的“最新版本”成为现有变更集的代码。我选择回滚,并回滚到该特定变更集,但我的代码不会更改以反映变更集的代码。此外,我为该特定变更集尝试了“获取特定版本”,当我的本地代码更改为变更集的代码时,TFS 中显示“最新”的列对于已恢复的文件显示“否” - 请参见下面的屏幕截图。下面的截图是“获取特定版本”的结果:

问题:“获取特定版本”和“回滚”有什么区别?如果我的目标是本质上将我当前的代码库从现有的变更集更改为代码库,并将其作为“最新版本”(出于 TFS 原因 - 我正在尝试使用 TFS 部署到我们的 Web 服务器,但是因为TFS“没有最新版本” - 见上面的截图,它使用当前的最新版本,这不是我想要它使用的 - 我希望它从以前的变更集的代码库中部署),我怎么能这样做?

【问题讨论】:

    标签: visual-studio version-control tfs changeset


    【解决方案1】:

    如果您“获取特定版本”,则您将 本地工作区 版本更改为服务器上先前版本的版本。这不会影响服务器上的最新版本。 (当然,您可以检查该路径并将其签入,这影响服务器上的最新版本。)

    如果您“回滚”,您正在更改服务器版本。根据您执行此操作的方式,您可能不会更改本地工作区版本。如果您执行“获取最新版本”,您将同步到该最新版本。

    【讨论】:

    • 这确实有道理......所以如果我“获取特定版本”会更改我的本地工作区,然后检查我的解决方案然后立即签入,这将影响 TFS 最新版本是有道理的.我没看错吗?
    • @MikeMarks 确实是正确的;如果您执行“获取特定版本”,然后签出,然后重新签入,则文件的最新版本将反映您在先前版本中获得的内容。这是回滚文件内容的简单方法。但是,如果您查看文件的历史记录,它只会显示“编辑”的更改,而不是“回滚”的更改。
    【解决方案2】:

    如果您只是想构建/部署旧版本的代码,默认构建模板允许您指定变更集编号(或日期)并强制它使用旧版本的代码。

    如果您确实需要更改 TFS 中的“当前”代码,那么您可以进行回滚。但是听起来你对 Rollback 的理解是不正确的。这不是“回滚到这个变更集”,而是“回滚这个变更集中包含的变更”。

    因此,如果您的最新版本是 v9,并且您想回到 v5,则需要回滚变更集 v6-9。您可以突出显示所有 4 个变更集,并在一次操作中将它们全部回滚。然后签到。

    这将提供比尝试获取旧版本然后签出/签入更好的体验。历史记录将更准确地反映您所做的事情,并且冲突解决对话框不会尝试做错事(就像您执行 get then check-in/out 一样)。

    【讨论】:

    • 非常感谢您的描述。这完全有道理。
    猜你喜欢
    • 2011-11-08
    • 1970-01-01
    • 2016-09-07
    • 1970-01-01
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多