Default removing source branch in merge request for non-long-running branch

  • By default, when creating a merge request, "remove source branch" is unchecked per, https://gitlab.com/gitlab-org/gitlab-ce/issues/32885.
  • Users can always check it if they want to remove it. But we want to be smarter and anticipate it. This allows the users one less click to worry about.
  • We want to identify which types of source branches should by default have this checkbox checked.
  • The criteria is detecting non-long-running branches. For long-running branches, we want to not have that checkbox checked by default.
  • How do we know it is a non-long-running source branch? It must match these criteria:
    • The source branch has been created after the target branch.
    • The source branch does not have any merges into it.
    • The source branch was branched off from the target branch in the past.