API-如何以编程方式合并.VersionControlServer.GetMergeIndications返回的合并候选列表?
我正在创建默认合并窗口的克隆,以添加功能 我已经从下面的命令在网格中合并了候选对象:API-如何以编程方式合并.VersionControlServer.GetMergeIndications返回的合并候选列表?,api,tfs,Api,Tfs,我正在创建默认合并窗口的克隆,以添加功能 我已经从下面的命令在网格中合并了候选对象: MergeCandidate[] candidates = tfs.GetMergeCandidates(edtSelectedSource.Text, cbxTargetBranchs.Text); 现在,用户选择了一个或多个候选项,我需要合并它们 但是TFS API VersionControl.Merge需要源路径和目标路径 首先,我的问题是,我需要逐一迭代每个候选项并合并其变更集的每个文件? 第二
MergeCandidate[] candidates = tfs.GetMergeCandidates(edtSelectedSource.Text, cbxTargetBranchs.Text);
现在,用户选择了一个或多个候选项,我需要合并它们
但是TFS API VersionControl.Merge需要源路径和目标路径
首先,我的问题是,我需要逐一迭代每个候选项并合并其变更集的每个文件?
第二,如何从变更集中获取目标路径 首先,我已经用TFSAPI进行了大量编程,但是合并是我永远不会盲目相信自动化的事情。合并冲突最好由人来处理。是的,这是痛苦的,在许多情况下可以自动化,但在许多其他情况下,事情可能会变得非常糟糕。在对生产分支执行此操作之前,我会三思而后行 以下是一些应该有所帮助的提示: 您需要创建一个临时工作区。工作区是一切发生的沙箱。工作区可以有文件,因此可以有与其关联的文件位置。工作区项具有丰富的元数据 查看Workspace和WorkspaceInfo类 然后查看工作区客户端:
首先,我已经用TFS API进行了大量编程,但是合并是我永远不会盲目相信自动化的事情。合并冲突最好由人来处理。是的,这是痛苦的,在许多情况下可以自动化,但在许多其他情况下,事情可能会变得非常糟糕。在对生产分支执行此操作之前,我会三思而后行 以下是一些应该有所帮助的提示: 您需要创建一个临时工作区。工作区是一切发生的沙箱。工作区可以有文件,因此可以有与其关联的文件位置。工作区项具有丰富的元数据 查看Workspace和WorkspaceInfo类 然后查看工作区客户端:
只要变更集是连续的,就可以在一次合并调用中完成。如果它们不是连续的,则需要为每个连续块提交n个合并。假设他们选择了变更集10、15和20,并且这些变更集是连续的(即在该范围内没有其他候选变更),那么您将提交一个版本From为10、版本On为20的合并
就路径而言,您需要使用传递到QueryMerge候选者中的路径,并且还需要指定完整的递归类型。只要变更集是连续的,就可以在单个合并调用中完成。如果它们不是连续的,则需要为每个连续块提交n个合并。假设他们选择了变更集10、15和20,并且这些变更集是连续的(即在该范围内没有其他候选变更),那么您将提交一个版本From为10、版本On为20的合并
就路径而言,您需要使用传递到QueryMerge候选者中的路径,还需要指定完整的递归类型。现在我了解了api的逻辑。在Merge方法中,我需要将ChangesetVersionSpec versionFrom和versionOn设置为:==>Merge(sourcePath、targetPath、ChangesetVersionSpec(changeSetIdStart)、newchangesetVersionSpec(changeSetIdEnd)、LockLevel.None、RecursionType.Full、mergeoptionEx.None);谢谢泰勒的回答。现在我理解了api的逻辑。在Merge方法中,我需要将ChangesetVersionSpec versionFrom和versionOn设置为:==>Merge(sourcePath、targetPath、ChangesetVersionSpec(changeSetIdStart)、newchangesetVersionSpec(changeSetIdEnd)、LockLevel.None、RecursionType.Full、mergeoptionEx.None);谢谢你回答泰勒。