在TFS中,我如何挑选变更集到不相关的分支?

idi*_*asy 6 merge tfs cherry-pick

我有一个非常混乱的TFS结构,我正在努力清理(感谢我的前任).我现在有一种情况,我需要有选择地将变更集从一个分支带到另一个分支,在那里它们没有父/子关系,我不希望这些变更通过它们的共享主干.我怎样才能做到这一点?

我尝试了一个毫无根据的合并 - 在TFS中,如何在特定的变更集上进行无基础合并? - 告诉我合并没有变化.

我想要实现的是这样的TFS:搁置集可以恢复到另一个位置吗?除了变更集.

在GIT中,我认为这将是一个简单的樱桃选择.

我的结构看起来像:

   Y-C1-C2-C3
  /
X-------------
    \
     Z
Run Code Online (Sandbox Code Playgroud)

问题是如何在不通过X的情况下将C2从Y转换为Z?

Rob*_*cus 4

我们也有类似的情况,但在我们的例子中,我们将多个分支进行无基础的合并到“临时”构建分支。我们能够做到这一点的唯一方法是利用 TFS API 编写我们自己的实用程序。

好消息是,您应该能够用不到几百行代码来完成此任务。

基本步骤是:

  • 连接到 TFS
  • 获取 VersionControlServer 的实例(我们称之为 VCS)
  • 创建工作区
  • 做一个VCS.GetChangeset()
  • 迭代以Changes获取已更改的项目列表
  • Workspace.Merge对从源分支到目标分支的每个项目执行 a 。
  • 检查目标分支中的项目。
  • 删除工作区