powershell - 修改 “tf history”命令以仅生成未合并的变更集

标签 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中的变更集的信息,这样我就不必在整个历史中搜索在 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/

相关文章:

TFS API : How Do I Get a File's History?

eclipse - 在本地 TFS 中启用替代凭据

TFS - 在工作项之间移动任务

powershell - 在 if 语句中组合多个条件

powershell - 使用 CSV 作为输入清理 AD

regex - Powershell:如果正则表达式不匹配,则保留项目

bash - 在 bash 中为交替输出行着色的简单方法

python - SLURM squeue 格式参数从 subprocess.Popen 失败

powershell - 自动翻译报告脚本中的通用访问权限

java - 在 Java 中捕获 Ctrl+C