TFS声称即使没有

时间:2017-11-21 15:24:54

标签: powershell tfs teamcity

在TeamCity上(我使用Enterprise 10.x,如果这是相关的),我有一个名为Automerge from Branch A to Branch B的项目。该项目只有一个构建步骤,它运行执行此命令的PowerShell脚本(以及其他):

$tf checkin /comment:"Merging $changesetNumber from Branch A." /recursive /noprompt /bypass /override:"*** Merging from Branch A. ***"

(这个设置是我公司的源代码控制层次结构最近发生的变化所必需的。)

TeamCity上的构建失败,声称某些.cs文件之间存在冲突。但是,当我比较文件时,它们之间绝对没有区别。例如:

enter image description here

在TFS中,Branch ABranch B共享同一个父级,并且它们之间没有父子关系。

问题:

  1. 为什么TFS声称存在合并冲突,即使没有合并冲突?
  2. 如何确保TFS仅报告实际的合并冲突?
  3. 由于合并冲突的错误报告导致的构建失败对我们的工作流程具有很大的破坏性,并且执行手动合并非常低效。

    修改

    以下是Powershell脚本中的命令,该脚本在Branch B的工作空间中执行:

    Foreach ($changesetNumber in $changesetsToMerge) {
        echo "*** Getting latest... ***"
        & $tf get /noprompt
    
        echo "*** Merging $changesetNumber... ***"
        & $tf merge /baseless /version:$changesetNumber~$changesetNumber $/path/to/BranchA . /r /noprompt
        $exitCode=$LastExitCode
        if ($exitCode -ne 0) { exit $exitCode }
    
        echo "*** Checking in $changesetNumber... ***"
        & $tf checkin /comment:"Merging $changesetNumber from Branch A." /recursive /noprompt /bypass /override:"*** Merging from Branch A. ***"
    
    $exitCode=$LastExitCode
    if ($exitCode -ne 0) { exit $exitCode }
    

    }

    修改

    我遵循了建议here并在执行无基本合并的命令后添加了以下行:

    tf resolve /auto:acceptmerge
    

    但是,由于以下错误,它无效:

    [12:58:28]path\to\file.cs: The source and target both have changes.
    

    如前所述,源版本与目标版本相同,如比较时所示。尽管如此,TFS仍会返回上述错误消息。

0 个答案:

没有答案