修改"历史记录"命令只产生未合并的变更集

时间:2017-06-07 11:24:23

标签: powershell command-line tfs

我有两个分支AppleBanana。在Apple中的所有未合并更改集中,我只想在其签到的评论中合并包含术语MergeToBanana的那些。

到目前为止,这是我在PowerShell脚本中的内容:

Param (       
       [Parameter(Mandatory=$true)]
       [String]$ChangesetComment
       )

$tf = get-item "c:\program files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\TF.EXE"

if ($ChangesetComment) {
    echo "*** Looking for all changesets containing '$ChangesetComment' in their check-in comments. This might take a while. ***"
    $changesetsToMerge = & $tf history $/TeamProject/Server/Apple /noprompt /recursive | findstr $ChangesetComment  
    $changesetNumbers = $changesetsToMerge | % $_.changesetnumber

    echo "*** Now merging filtered changesets. ***"
    Foreach ($c in $changesetNumbers) {
        & $tf merge /version $_.c $/IMSDev/Closed/$ScdVersion . /r /noprompt    
    }
}

根据我的示例,当我运行脚本时,ChangesetComment将设置为MergeToBanana

我想修改我的tf history命令,以便它只生成Apple中尚未合并到Banana的变更集的相关信息,以便我不会在其签到评论中搜索包含ChangesetComment的变更集的整个历史记录。我怎么能这样做?

欢迎任何有关如何改进我的脚本的其他建议。

1 个答案:

答案 0 :(得分:0)

您可以尝试在TF merge command

中使用/candidate选项,而不是使用tf history命令
  

合并/候选人SOURCE_BRANCH TARGET_BRANCH

示例:

  合并/候选Apple Banana

更多详情请参阅此问题中的答案:TFS: List changesets that have not been merged