Skip to content

Remove :default_merge_ref_for_diffs Feature Flag

What

Remove the :default_merge_ref_for_diffs feature flag ...

This feature flag will default to comparing your source branch changes against master (HEAD).

Owners

  • Team: Source Code
  • Most appropriate slack channel to reach out to: #g_create_code-review
  • Best individual to reach out to: @andr3 @m_gill

Expectations

What are we expecting to happen?

Enabling this flag will change the default of comparing source branches against master to a method using merge-ref. More info can be found in this issue.

From that issue:

Merge request diffs are currently calculated by git diff target...sourcewhich comparesHEADoftargetwith the merge base oftargetandsource. This works well until changes from the target branch are merged in to the source branch, creating a complete mess of the diff.

What might happen if this goes wrong?

A past problem was users saw some incorrect diffs when looking at different versions, especially after a rebase/squash. This should be fixed, but it's something to watch out for.

What can we monitor to detect problems with this?

Any issues with diffs could be related to this. Please ping @garyh for investigation!

Beta groups/projects

If applicable, any groups/projects that are happy to have this feature turned on early. Some organizations may wish to test big changes they are interested in with a small subset of users ahead of time for example.

  • gitlab-org/gitlab project
  • gitlab-com/www-gitlab-com project

Roll Out Steps

  • Enable on staging (/chatops run feature set feature_name true --staging)
  • Test on staging
  • Ensure that documentation has been updated
  • Enable on GitLab.com for individual groups/projects listed above and verify behaviour (/chatops run feature set --project=gitlab-org/gitlab feature_name true)
  • Coordinate a time to enable the flag with the SRE oncall and release managers
    • In #production by pinging @sre-oncall
    • In #g_delivery by pinging @release-managers
  • Announce on the issue an estimated time this will be enabled on GitLab.com
  • Enable on GitLab.com by running chatops command in #production (/chatops run feature set feature_name true)
  • Cross post chatops Slack command to #support_gitlab-com (more guidance when this is necessary in the dev docs) and in your team channel
  • Announce on the issue that the flag has been enabled
  • Remove feature flag and add changelog entry
  • After the flag removal is deployed, clean up the feature flag by running chatops command in #production channel

Rollback Steps

  • This feature can be disabled by running the following Chatops command:
/chatops run feature set --project=gitlab-org/gitlab feature_name false
Edited by Patrick Bajao