gpt4 book ai didi

azure-devops - VSTS 构建包括所有以前的提交作为关联的更改

转载 作者:行者123 更新时间:2023-12-03 13:42:14 26 4
gpt4 key购买 nike

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

问题在于,当“release/2”构建运行时,相关的更改会显示导致“release/2”的所有提交,包括导致“release/1”的提交。这在每个新版本中都会继续。

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

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

重现此问题的步骤:

  • 在 VSTS 中创建一个带有自述文件的 git repo
  • 创建新的构建定义(空),将 'Get Sources' 步骤设置为您刚刚创建的 repo 并将分支设置为 master
  • 转到选项并将“自动链接此版本中的新工作”设置为启用
  • 转到“触发器”> 持续集成> 触发器状态> 启用> 分支过滤器> 将分支规范设置为“发布/*”(不包括单引号)
  • 将新存储库克隆到您的计算机
  • 创建一个将用于在 repo 中进行修改的文件,添加并提交该文件。例如我将使用 ver.txt
  • 将更新的主分支推送到服务器 ( git push origin )
  • 只需在项目的 VSTS 构建区域中排队即可执行第一次构建
  • 创建第一个发布分支
  • git checkout -b release/1
  • 对 ver.txt 进行修改(我只是增加了值)
  • git commit -am "Updated to version 1"
  • git push origin release/1
  • 将此分支推送到服务器后应触发构建
  • 构建完成后,查看构建摘要 > 相关更改,注意此新存储库的所有提交都已列出
  • 将发布分支合并回 master
  • git checkout master
  • git merge release/1
  • git branch -d release/1
  • git push origin -d release/1
  • 创建第二个发布分支
  • git checkout -b release/2
  • 对 ver.txt 进行修改(我只是增加了值)
  • git commit -am "Updated to version 2"
  • git push origin release/2
  • 将此分支推送到服务器后应触发构建
  • 此时,当查看最新构建的关联更改时,您将看到它继续累积存储库的整个历史记录
    与当前构建和上次成功构建之间的提交相反,尽管它是相同的构建定义正在运行
  • 最佳答案

    它也基于源代码,而不仅仅是构建,因此对于 release/2,它将当前构建与上次成功构建的 release/2 分支源进行比较,因此它包括在 release/1 中的提交。

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

    关于azure-devops - VSTS 构建包括所有以前的提交作为关联的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46368770/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com