Project Merge Method Setting - Front end
Problem
In #421025, we added a service which changes how merge checks are conducted and in order to avoid a breaking change we want to add a setting to put this feature behind.
Add a project setting that is defaulted to off so it inherits the defined project merge method.
Background
I am now wondering if we should make the merge method used for the merged result pipelines an additional setting. Not everybody may want to squash and rebase for the merged result pipeline, as it increases the risk of conflicts, and the only upside is a more representative git history. The git history can also never be fully representative, because some of the information in our commit message templates is only available on the actual merge (e.g.
approved_by
andmerged_by
).If we make it a setting, then it does also not need to be a breaking change. We can have a setting:
- Enable merged result pipelines
- Use project merge method: The merged result is squashed and rebased according to the project and merge request preferences. Otherwise, only a merge commit is created, and no squash is performed.
We can then default this setting to off for now, change the default to on for new projects at some later time, and possibly remove it entirely eventually (i.e. always on), depending on usage.
Proposal
-
Enable merged results pipelines -
Always use merge commits The project's configured settings for merge method and commit squashing are ignored. Merge commits are always used when merging merge requests with merged results pipelines.
-
The new option would come above Enable merge trains
.