我有两个分支,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
中的变更集的信息,这样我就不必在整个历史中搜索在 checkin 注释中包含ChangesetComment
的变更集。 。我该怎么办?也欢迎任何其他有关如何改进脚本的建议。
最佳答案
您可以尝试在TF merge command中使用/candidate
选项来代替使用tf history命令
tf merge /candidate SOURCE_BRANCH TARGET_BRANCH
例:
tf merge /candidate Apple Banana
更多详细方法,请引用此问题的答案:TFS: List changesets that have not been merged
关于powershell - 修改 “tf history”命令以仅生成未合并的变更集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44411313/