0

我正在创建默认合并窗口的克隆,以添加功能。

我已经在下面的命令的网格中有一个合并候选人:

  MergeCandidate[] candidates = tfs.GetMergeCandidates(edtSelectedSource.Text, cbxTargetBranchs.Text);

现在,用户选择了 1 个或多个候选者,我需要合并它们。

但是 TFS API VersionControl.Merge 需要源路径和目标路径。

首先,我的问题是,我需要逐个迭代每个候选并合并其变更集的每个文件?其次,我如何从变更集中获取目标路径?

4

2 回答 2

3

首先,我已经使用 TFS API 进行了大量编程,但是我永远不会盲目相信自动化的合并。合并冲突最好由人来处理。是的,这很痛苦,并且在许多情况下可以自动化,但在许多其他情况下 - 事情可能会出错。在生产分支上执行此操作之前,我会三思而后行。

以下是一些应该有所帮助的提示:

您需要创建一个临时工作区。工作区是一切发生的沙箱。工作区可以有文件,因此可以有与之关联的文件位置。工作区项目具有丰富的元数据。

查看 Workspace 和 WorkspaceInfo 类。

然后看一下工作区客户端:

http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.versioncontrol.client.item.aspx

于 2013-02-10T23:09:48.550 回答
0

只要变更集是连续的,您就可以在一次合并调用中完成。如果它们不连续,则需要为每个连续块提交 n 次合并。假设他们选择变更集 10、15 和 20,并且这些变更集是连续的(即在该范围内没有其他候选者),那么您将提交 versionFrom 为 10 和 versionTo 为 20 的合并。

就路径而言,您希望使用传递给 QueryMergeCandidates 的路径,并且还需要指定完整的递归类型。

于 2013-02-11T23:37:44.727 回答