VSTS构建包括所有先前的提交作为相关更改

时间:2017-09-22 15:58:48

标签: azure-devops azure-pipelines

我遇到一个问题,使我以前的所有提交都显示为每个新构建中的相关更改。我认为该问题与使用通配符分支模式自动触发构建定义有关。我使用模式' release / *'在分支名称的任何提交上触发我们的发布版本。我们软件的每个生产版本都从一个新的发布分支开始,该分支具有以下命名约定'发布/ 1'发布/ 2'等,其中数字与我们发布的软件版本匹配。

问题是当'发布/ 2'构建得到运行,相关的更改显示所有提交到“释放/ 2”的提交。包括导致发布/ 1'的提交。每个新版本都会继续。

我认为它应该工作的方式是仅显示当前构建和之前成功构建之间发生的更改。

对此问题的任何见解将不胜感激。

重现此问题的步骤:

  1. 在VSTS中创建一个git repo w / add readme
  2. 创建新的构建定义(空),设置'获取来源'步骤到您刚创建的仓库和要掌握的分支
    • 转到选项并设置'自动链接此版本中的新作品'启用
    • 转到&#39;触发器&#39; &GT; <持续集成>触发状态&gt;已启用&gt;分支过滤器&gt;将分支规范设置为&#39; release / *&#39; (不包括单引号)
  3. 将新回购克隆到您的计算机
  4. 创建一个文件,用于在repo中进行修改,添加和提交文件。例如,我将使用ver.txt
  5. 将更新的主分支推送到服务器(git push origin
  6. 通过在项目的VSTS构建区域中排队来执行第一次构建
  7. 创建第一个发布分支

    • git checkout -b release/1
    • 修改ver.txt(我只是增加值)
    • git commit -am "Updated to version 1"
    • git push origin release/1
    • 一旦将此分支推送到服务器,就应该触发构建
    • 构建完成后,查看构建摘要&gt;相关更改,请注意列出此新repo的所有提交
    • 将发布分支合并回master
      • git checkout master
      • git merge release/1
      • git branch -d release/1
      • git push origin -d release/1
  8. 创建第二个发布分支

    • git checkout -b release/2
    • 修改ver.txt(我只是增加值)
    • git commit -am "Updated to version 2"
    • git push origin release/2
    • 一旦将此分支推送到服务器,就应该触发构建
  9. 此时查看最新版本&#39;相关更改您将看到它继续累积存储库的整个历史记录 而不是仅仅是当前构建和上一次成功构建之间的提交,尽管事实上它正在运行相同的构建定义

1 个答案:

答案 0 :(得分:0)

它也基于源,而不仅仅是构建,所以关于release / 2,它将当前构建与release / 2分支源的上次成功构建进行比较,因此它包括release / 1中的commit。

我建议您可以通过Pull Request与成功构建合并更改,并检查此构建中的更改。 (Branch policy