Validation Azure DevOps中拉请求验证的用例是什么?

Validation Azure DevOps中拉请求验证的用例是什么?,validation,azure-devops,pull-request,Validation,Azure Devops,Pull Request,在Azure DevOps构建管道中,我们将“持续集成”和“拉请求验证”作为触发选项。如果我们启用持续集成,每当我们推送新内容时,它就会自动运行CI管道。如果“拉请求验证”选项总是构建源分支的最后一次提交,为什么我们需要它。“持续整合”不是也一样吗?我希望有一个用于合并提交的构建,这样我们就可以避免主开发分支上与合并相关的失败。 大多数团队使用拉取请求作为代码审查过程。使用pull请求构建代码可以让审阅者在构建中获得统计信息,而不必实际将代码合并到目标分支中。如果您有一个受保护的分支,如mast

在Azure DevOps构建管道中,我们将“持续集成”和“拉请求验证”作为触发选项。如果我们启用持续集成,每当我们推送新内容时,它就会自动运行CI管道。如果“拉请求验证”选项总是构建源分支的最后一次提交,为什么我们需要它。“持续整合”不是也一样吗?我希望有一个用于合并提交的构建,这样我们就可以避免主开发分支上与合并相关的失败。

大多数团队使用拉取请求作为代码审查过程。使用pull请求构建代码可以让审阅者在构建中获得统计信息,而不必实际将代码合并到目标分支中。如果您有一个受保护的分支,如
master
,则审阅者可以查看构建时间、单元测试覆盖率和/或编译器警告,而无需实际更改Git中的
master
分支。请记住,Git是分布式的,所以即使您有CI设置,实际上也可以将中断的更改合并到分支中。这一步只是保护和保护关键分支的一种方法。

大多数团队将拉取请求用作代码审查过程。使用pull请求构建代码可以让审阅者在构建中获得统计信息,而不必实际将代码合并到目标分支中。如果您有一个受保护的分支,如
master
,则审阅者可以查看构建时间、单元测试覆盖率和/或编译器警告,而无需实际更改Git中的
master
分支。请记住,Git是分布式的,所以即使您有CI设置,实际上也可以将中断的更改合并到分支中。这一步只是保护和保护关键分支的一种方法。

因此,我们只允许通过PR来掌握集成。对吗?如果生成失败,“合并”按钮将被禁用。我们不能对CI构建有相同的行为吗?我记得CI构建状态在PR中也是可见的。是的,您必须使用“分支策略”通过PR强制合并到master中。是的,CI状态在PR中可用,但当您执行PR时,将创建一个特殊分支,其结果是合并两个分支。这有助于突出显示合并冲突、缺少正向或反向集成以及合并可能产生的任何其他问题。CI擅长捕捉问题,但不会捕捉所有问题。合并代码并构建它是确定PR的唯一正确方法。我刚刚验证,如果您通过UI进行PR,它将包括来自
master
的更改。我创建了一个场景,在这个场景中,我故意生成了一个合并冲突,该工具将要求手动检查。这些更改然后由PR构建生成。在不了解更多分支/合并过程的情况下,我无法确定您应该期望什么。我能说的是,如果你遵循Gitflow类型的模式,那么建立你的公关将符合你的最佳利益。同意@VirusTorm。在pr完成之前验证更改对您的分支机构来说更安全、更好。它可以帮助您在问题发生之前发现问题。@ArsenKhachatryan我同时使用Azure DevOps Git和GitHub。这取决于项目。所以,通过这种方式,我们只允许通过PR来掌握集成。对吗?如果生成失败,“合并”按钮将被禁用。我们不能对CI构建有相同的行为吗?我记得CI构建状态在PR中也是可见的。是的,您必须使用“分支策略”通过PR强制合并到master中。是的,CI状态在PR中可用,但当您执行PR时,将创建一个特殊分支,其结果是合并两个分支。这有助于突出显示合并冲突、缺少正向或反向集成以及合并可能产生的任何其他问题。CI擅长捕捉问题,但不会捕捉所有问题。合并代码并构建它是确定PR的唯一正确方法。我刚刚验证,如果您通过UI进行PR,它将包括来自
master
的更改。我创建了一个场景,在这个场景中,我故意生成了一个合并冲突,该工具将要求手动检查。这些更改然后由PR构建生成。在不了解更多分支/合并过程的情况下,我无法确定您应该期望什么。我能说的是,如果你遵循Gitflow类型的模式,那么建立你的公关将符合你的最佳利益。同意@VirusTorm。在pr完成之前验证更改对您的分支机构来说更安全、更好。它可以帮助您在问题发生之前发现问题。@ArsenKhachatryan我同时使用Azure DevOps Git和GitHub。这取决于项目。