【问题标题】:Apply specific changeset from one TFS instance to another将特定变更集从一个 TFS 实例应用到另一个
【发布时间】:2012-09-18 01:26:59
【问题描述】:

将来自一个 TFS 实例的特定变更集的更改应用到另一个实例的最简单方法是什么?

我想要的是从实例 A 中获取某种补丁文件,我可以将其应用于实例 B。由于有两个不同的实例,因此不能使用传统的分支/合并方法。而且据我所知,TFS 对传统 Unix 意义上的补丁文件的支持很差。

我真的需要检查实例 A 上的变更集并手动压缩相关文件,然后我可以将这些文件提取到实例 B 的源代码树中吗?

【问题讨论】:

  • 如果您解释为什么您有两个不同的 TFS 实例可能会有所帮助。
  • 客户 C 决定从供应商 A 切换到供应商 B 以维护他们的企业软件解决方案。在几个月的时间里,A 仍将负责修复错误,而 B 将负责更改请求。如问题所述,A 和 B 不共享 TFS 服务器,A 在其源代码树中进行的错误修复需要找到通往 B 的服务器的方式。

标签: version-control tfs patch


【解决方案1】:

我写了一篇关于类似问题的博客文章,其中我使用了 TF.exe 命令和 7Zip 到 create a TFS patch file,然后可以将其应用于另一个 TFS 服务器或工作区。我在Github 上发布了 Powershell 脚本,它可用于压缩一个工作区上的任何未决更改,然后将它们应用到另一台服务器。必须对其进行修改以使用变更集而不是挂起的变更,但这应该不会太难完成。

【讨论】:

    【解决方案2】:

    事实证明,由于缺乏对 TFS 的支持,“补丁”路由是一条死胡同。我们最终得到的解决方案是执行一项夜间工作,该工作基本上执行以下操作:

    1. 使用只读用户从远程仓库获取所有代码。
    2. 用另一个分支的内容覆盖我们仓库中单独分支的所有内容。
    3. 只要我们想将其更改带入我们的主分支,就执行从该单独分支到主分支的合并。

    【讨论】:

      【解决方案3】:

      This answer 解释了如何使用tf diff 命令创建补丁文件。但是,没有内置方法可以将该补丁文件应用到另一个实例或分支。我也没有看到任何第三方工具可以这样做。

      【讨论】:

      • 我查看了 'tf diff' 命令,但我发现在特定变更集 N 上进行差异化的唯一方法是使用 versionspec CN-1~CN 在源根目录上运行它,这需要永远,也不处理添加或删除的文件,只处理修改的文件。
      猜你喜欢
      • 1970-01-01
      • 2013-12-14
      • 1970-01-01
      • 2017-08-22
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-13
      相关资源
      最近更新 更多