我有一个非常混乱的 TFS 结构,我正在尝试清理它(感谢我的前任)。我现在遇到一种情况,我需要有选择地将变更集从一个分支转移到另一个没有父/子关系的分支,并且我不希望这些更改通过他们的共享主干。我怎样才能做到这一点?
我尝试过毫无根据的合并 -在 TFS 中,如何对特定变更集进行无基础合并? https://stackoverflow.com/questions/1437304/tfs-baseless-merge-on-specific-changesets- 这告诉我没有任何需要合并的更改。
我想要实现的是这样的TFS:搁置集可以恢复到另一个位置吗? https://stackoverflow.com/questions/633891/tfs-can-a-shelveset-be-restored-to-another-location除非有变更集。
在 GIT 中,我认为这将是一个简单的选择。
我的结构看起来像:
Y-C1-C2-C3
/
X-------------
\
Z
问题是如何在不经过X的情况下从Y到Z得到C2?
我们也有类似的情况,但在我们的例子中,我们将多个分支进行无基础的合并到“临时”构建分支。我们能够做到这一点的唯一方法是利用 TFS API 编写我们自己的实用程序。
好消息是,您应该能够用不到几百行代码来完成此任务。
基本步骤是:
- 连接到 TFS
- 获取 VersionControlServer 的实例(我们称之为 VCS)
- 创建工作区
- Do a
VCS.GetChangeset()
- 迭代通过
Changes
获取已更改的项目列表
- 执行一个
Workspace.Merge
对于从源分支到目标分支的每个项目。
- 检查目标分支中的项目。
- 删除工作区
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)