我有两个分支Apple
和Banana
。在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
的变更集的整个历史记录。我怎么能这样做?
欢迎任何有关如何改进我的脚本的其他建议。
答案 0 :(得分:0)
您可以尝试在TF merge command
中使用/candidate
选项,而不是使用tf history命令
合并/候选人SOURCE_BRANCH TARGET_BRANCH
示例:
合并/候选Apple Banana
更多详情请参阅此问题中的答案:TFS: List changesets that have not been merged