openEuler社区仓库Pull Request合入方式指引

wanghaosq2022-11-24openEuler仓库PR合入方式

openEuler社区单仓Pull Request合入方式指引

一、社区PR合入方式对比

1.rebase merge:

变基合并,将所有的提交都合并到目标分支,且在目标仓库的目标分支的changelog中不包含pull request的任何信息.
rebase example:


2.squash merge:

扁平化分支合并,将所有的提交合并为一个以PR的title为changelog的新的提交,然后合并到目标分支上.
squash example:

3.default merge:

合并分支(默认方式),将所有提交以及新创建一个以PR的title为changelog的提交均合并到目标分支上.

tips: examples中的测试用例均为有两个提交的PR,测试了三种不同的合入方式

三种合入方式图解对比:

二、单一仓库文件增加merge_method字段配置方式

当前Gitee平台对PR的合入方式提供了三种:mergerebase mergesquash mergemerge是默认的合入方式,可不用进行单独配置。

rebase example:

yaml
name: A-Tune-BPF-Collection
description: A-Tune-BPF-Collection is BPF based tunning tools collection
branches:
- name: master
  type: protected
type: public
merge_method: rebase

squash example:

yaml
name: A-Tune-BPF-Collection
description: A-Tune-BPF-Collection is BPF based tunning tools collection
branches:
- name: master
  type: protected
type: public
merge_method: squash

default example:

yaml
name: A-Tune-BPF-Collection
description: A-Tune-BPF-Collection is BPF based tunning tools collection
branches:
- name: master
  type: protected
type: public

三、通过Pull Request评论的方式进行合入方式切换

命令使用方式说明:
en:https://gitee.com/openeuler/community/blob/master/en/sig-infrastructure/command.md
zh:https://gitee.com/openeuler/community/blob/master/zh/sig-infrastructure/command.md

(1) 使用 "/rebase"命令

通过 /rebase 命令给Pull Request加上merge/rebase标签,标志着此合并请求将以变基合并的方式合入(rebase merge),如果需要切换合并方式, 请使用 /rebase cancel 去掉merge/rebase标签。

(2) 使用 "/squash"命令

通过 /squash 命令给Pull Request加上merge/squash标签,标志着此合并请求将以扁平化分支合并的方式合入(squash merge),如果需要切换合并方式, 请使用 /squash cancel 去掉merge/squash标签。

(3)两者均不使用

Pull Request将以默认的merge的方式进行合入。

四、更改合入方式生效的优先级

Pull Request评论方式 > 仓库文件中配置的merge_method字段


【免责声明】本文仅代表作者本人观点,与本网站无关。本网站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文仅供读者参考,由此产生的所有法律责任均由读者本人承担。