When you cherry-pick a merge commit, GitLab displays a system note to the related merge
When you cherry-pick a merge commit, GitLab displays a system note to the related merge
request thread. It crosslinks the new commit and the existing merge request.
request thread. It crosslinks the new commit and the existing merge request.
![Cherry-pick tracking in Merge Request timeline](img/cherry_pick_mr_timeline_v12_9.png)
![Cherry-pick tracking in merge request timeline](img/cherry_pick_mr_timeline_v12_9.png)
Each deployment's [list of associated merge requests](../../../api/deployments.md#list-of-merge-requests-associated-with-a-deployment) includes cherry-picked merge commits.
Each deployment's [list of associated merge requests](../../../api/deployments.md#list-of-merge-requests-associated-with-a-deployment) includes cherry-picked merge commits.
@@ -519,7 +519,7 @@ to change the default configuration, **not** a `.codequality.yml` file. If you u
...
@@ -519,7 +519,7 @@ to change the default configuration, **not** a `.codequality.yml` file. If you u
the wrong filename, the [default `.codeclimate.yml`](https://gitlab.com/gitlab-org/ci-cd/codequality/-/blob/master/codeclimate_defaults/.codeclimate.yml.template)
the wrong filename, the [default `.codeclimate.yml`](https://gitlab.com/gitlab-org/ci-cd/codequality/-/blob/master/codeclimate_defaults/.codeclimate.yml.template)
is still used.
is still used.
### No Code Quality report is displayed in a Merge Request
### No Code Quality report is displayed in a merge request
This can be due to multiple reasons:
This can be due to multiple reasons:
...
@@ -531,7 +531,7 @@ This can be due to multiple reasons:
...
@@ -531,7 +531,7 @@ This can be due to multiple reasons:
nothing is displayed.
nothing is displayed.
- The [`artifacts:expire_in`](../../../ci/yaml/README.md#artifactsexpire_in) CI/CD
- The [`artifacts:expire_in`](../../../ci/yaml/README.md#artifactsexpire_in) CI/CD
setting can cause the Code Quality artifact(s) to expire faster than desired.
setting can cause the Code Quality artifact(s) to expire faster than desired.
- The widgets use the pipeline of the latest commit to the target branch. If commits are made to the default branch that do not run the code quality job, this may cause the Merge Request widget to have no base report for comparison.
- The widgets use the pipeline of the latest commit to the target branch. If commits are made to the default branch that do not run the code quality job, this may cause the merge request widget to have no base report for comparison.
- If you use the [`REPORT_STDOUT` environment variable](https://gitlab.com/gitlab-org/ci-cd/codequality#environment-variables), no report file is generated and nothing displays in the merge request.
- If you use the [`REPORT_STDOUT` environment variable](https://gitlab.com/gitlab-org/ci-cd/codequality#environment-variables), no report file is generated and nothing displays in the merge request.
- Large `gl-code-quality-report.json` files (esp. >10 MB) are [known to prevent the report from being displayed](https://gitlab.com/gitlab-org/gitlab/-/issues/2737).
- Large `gl-code-quality-report.json` files (esp. >10 MB) are [known to prevent the report from being displayed](https://gitlab.com/gitlab-org/gitlab/-/issues/2737).
As a work-around, try removing [properties](https://github.com/codeclimate/platform/blob/master/spec/analyzers/SPEC.md#data-types)
As a work-around, try removing [properties](https://github.com/codeclimate/platform/blob/master/spec/analyzers/SPEC.md#data-types)
info:To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
info:To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
Copy that link and paste it in your browser, and the [**New Merge Request page**](#new-merge-request-page)
Copy that link and paste it in your browser, and the [**New merge request page**](#new-merge-request-page)
is displayed.
is displayed.
There is also a number of [flags you can add to commands when pushing through the command line](../push_options.md) to reduce the need for editing merge requests manually through the UI.
There is also a number of [flags you can add to commands when pushing through the command line](../push_options.md) to reduce the need for editing merge requests manually through the UI.
...
@@ -148,20 +148,20 @@ There is also a number of [flags you can add to commands when pushing through th
...
@@ -148,20 +148,20 @@ There is also a number of [flags you can add to commands when pushing through th
If you didn't push your branch to GitLab through the command line
If you didn't push your branch to GitLab through the command line
(for example, you used a Git CLI application to push your changes),
(for example, you used a Git CLI application to push your changes),
you can create a merge request through the GitLab UI by clicking
you can create a merge request through the GitLab UI by clicking
the [**Create Merge Request**](#create-merge-request-button) button.
the [**Create merge request**](#create-merge-request-button) button.
## New merge request from an issue
## New merge request from an issue
You can also [create a new merge request directly from an issue](../repository/web_editor.md#create-a-new-branch-from-an-issue).
You can also [create a new merge request directly from an issue](../repository/web_editor.md#create-a-new-branch-from-an-issue).
## New merge request from the Merge Requests page
## New merge request from the merge requests page
You can start creating a new merge request by clicking the
You can start creating a new merge request by clicking the
**New merge request** button on the **Merge Requests** page in a project.
**New merge request** button on the **merge requests** page in a project.
Then choose the source project and branch that contain your changes,
Then choose the source project and branch that contain your changes,
and the target project and branch where you want to merge the changes into.
and the target project and branch where you want to merge the changes into.
Click on **Compare branches and continue** to go to the
Click on **Compare branches and continue** to go to the
[**New Merge Request** page](#new-merge-request-page) and fill in the details.
[**New merge request** page](#new-merge-request-page) and fill in the details.
## New merge request from a fork
## New merge request from a fork
...
@@ -169,7 +169,7 @@ After forking a project and applying your local changes, complete the following
...
@@ -169,7 +169,7 @@ After forking a project and applying your local changes, complete the following
create a merge request from your fork to contribute back to the main project:
create a merge request from your fork to contribute back to the main project:
1. Go to **Projects > Your Projects** and select your fork of the repository.
1. Go to **Projects > Your Projects** and select your fork of the repository.
1. In the left menu, go to **Merge Requests**, and click **New Merge Request**.
1. In the left menu, go to **Merge requests**, and click **New merge request**.
1. In the **Source branch** drop-down list box, select your branch in your forked repository as the source branch.
1. In the **Source branch** drop-down list box, select your branch in your forked repository as the source branch.
1. In the **Target branch** drop-down list box, select the branch from the upstream repository as the target branch.
1. In the **Target branch** drop-down list box, select the branch from the upstream repository as the target branch.
You can set a [default target project](#set-the-default-target-project) to
You can set a [default target project](#set-the-default-target-project) to
...
@@ -247,6 +247,6 @@ apply the patches. The target branch can be specified using the
...
@@ -247,6 +247,6 @@ apply the patches. The target branch can be specified using the
[`/target_branch` quick action](../quick_actions.md). If the source
[`/target_branch` quick action](../quick_actions.md). If the source
branch already exists, the patches are applied on top of it.
branch already exists, the patches are applied on top of it.
## Reviewing and managing Merge Requests
## Reviewing and managing merge requests
Once you have submitted a merge request, it can be [reviewed and managed](reviews/index.md) through GitLab.
Once you have submitted a merge request, it can be [reviewed and managed](reviews/index.md) through GitLab.
info:To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
info:To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
---
# Export Merge Requests to CSV **(FREE)**
# Export merge requests to CSV **(FREE)**
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/3619) in GitLab 13.6.
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/3619) in GitLab 13.6.
Exporting Merge Requests CSV enables you and your team to export all the data collected from merge requests into a comma-separated values (CSV) file, which stores tabular data in plain text.
Exporting merge requests CSV enables you and your team to export all the data collected from merge requests into a comma-separated values (CSV) file, which stores tabular data in plain text.
To export Merge Requests to CSV, navigate to your **Merge Requests** from the sidebar of a project and click **Export to CSV**.
To export merge requests to CSV, navigate to your **Merge requests** from the sidebar of a project and click **Export to CSV**.
- A project built in Rails that uses RSpec for testing.
- A project built in Rails that uses RSpec for testing.
- CI/CD configured to:
- CI/CD configured to:
- Use a Docker image with Ruby available.
- Use a Docker image with Ruby available.
- Use [Pipelines for Merge Requests](../../../ci/merge_request_pipelines/index.md#configuring-pipelines-for-merge-requests)
- Use [Pipelines for merge requests](../../../ci/merge_request_pipelines/index.md#configuring-pipelines-for-merge-requests)
-[Pipelines for Merged Results](../../../ci/merge_request_pipelines/pipelines_for_merged_results/index.md#enable-pipelines-for-merged-results)
-[Pipelines for Merged Results](../../../ci/merge_request_pipelines/pipelines_for_merged_results/index.md#enable-pipelines-for-merged-results)
enabled in the project settings.
enabled in the project settings.
- A Docker image with Ruby available. The template uses `image: ruby:2.6` by default, but you [can override](../../../ci/yaml/includes.md#overriding-external-template-values) this.
- A Docker image with Ruby available. The template uses `image: ruby:2.6` by default, but you [can override](../../../ci/yaml/includes.md#overriding-external-template-values) this.
info:To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
info:To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
type:index, reference
type:index, reference
description:"GettingstartedwithMergeRequests."
description:"Gettingstartedwithmergerequests."
---
---
# Getting started with Merge Requests **(FREE)**
# Getting started with merge requests **(FREE)**
A Merge Request (**MR**) is the basis of GitLab as a code
A merge request (**MR**) is the basis of GitLab as a code
collaboration and version control.
collaboration and version control.
When working in a Git-based platform, you can use branching
When working in a Git-based platform, you can use branching
...
@@ -25,7 +25,7 @@ avoiding changes to be pushed directly to the default branch
...
@@ -25,7 +25,7 @@ avoiding changes to be pushed directly to the default branch
without prior reviews, tests, and approvals.
without prior reviews, tests, and approvals.
When you create a new feature branch, change the files, and push
When you create a new feature branch, change the files, and push
it to GitLab, you have the option to create a **Merge Request**,
it to GitLab, you have the option to create a **merge request**,
which is essentially a _request_ to merge one branch into another.
which is essentially a _request_ to merge one branch into another.
The branch you added your changes into is called _source branch_
The branch you added your changes into is called _source branch_
...
@@ -122,7 +122,7 @@ Requesting a code review is an important part of contributing code. However, dec
...
@@ -122,7 +122,7 @@ Requesting a code review is an important part of contributing code. However, dec
your code and asking for a review are no easy tasks. Using the "assignee" field for both authors and
your code and asking for a review are no easy tasks. Using the "assignee" field for both authors and
reviewers makes it hard for others to determine who's doing what on a merge request.
reviewers makes it hard for others to determine who's doing what on a merge request.
The Merge Request Reviewers feature enables you to request a review of your work, and
The merge request Reviewers feature enables you to request a review of your work, and
see the status of the review. Reviewers help distinguish the roles of the users
see the status of the review. Reviewers help distinguish the roles of the users
involved in the merge request. In comparison to an **Assignee**, who is directly
involved in the merge request. In comparison to an **Assignee**, who is directly
responsible for creating or merging a merge request, a **Reviewer** is a team member
responsible for creating or merging a merge request, a **Reviewer** is a team member
...
@@ -234,7 +234,7 @@ The feature today works only on merge. Clicking the **Remove source branch** but
...
@@ -234,7 +234,7 @@ The feature today works only on merge. Clicking the **Remove source branch** but
after the merge request was merged will not automatically retarget a merge request.
after the merge request was merged will not automatically retarget a merge request.
This improvement is [tracked as a follow-up](https://gitlab.com/gitlab-org/gitlab/-/issues/321559).
This improvement is [tracked as a follow-up](https://gitlab.com/gitlab-org/gitlab/-/issues/321559).
## Recommendations and best practices for Merge Requests
## Recommendations and best practices for merge requests
- When working locally in your branch, add multiple commits and only push when
- When working locally in your branch, add multiple commits and only push when
you're done, so GitLab runs only one pipeline for all the commits pushed
you're done, so GitLab runs only one pipeline for all the commits pushed
@@ -5,10 +5,10 @@ info: To determine the technical writer assigned to the Stage/Group associated w
...
@@ -5,10 +5,10 @@ info: To determine the technical writer assigned to the Stage/Group associated w
type:reference, concepts
type:reference, concepts
---
---
# Merge Request dependencies **(PREMIUM)**
# Merge request dependencies **(PREMIUM)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/9688) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.2.
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/9688) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.2.
> - [Renamed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/17291) from "Cross-project dependencies" to "Merge Requests dependencies" in [GitLab Premium](https://about.gitlab.com/pricing/) 12.4.
> - [Renamed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/17291) from "Cross-project dependencies" to "Merge request dependencies" in [GitLab Premium](https://about.gitlab.com/pricing/) 12.4.
> - Intra-project MR dependencies were [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/16799) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.4.
> - Intra-project MR dependencies were [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/16799) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.4.
Merge request dependencies allows a required order of merging
Merge request dependencies allows a required order of merging