Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-02-01 03:07:51 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-02-01 03:07:51 +0300
commit4aaadcc49070b085d63377c004c5632b6d1b2b4c (patch)
tree0d8c890fd1ce0ca22ec579a91fcd84f92c50404f /doc
parent9e83d078577a9c066f21fcef1355f800ad895c9c (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'doc')
-rw-r--r--doc/api/api_resources.md1
-rw-r--r--doc/api/draft_notes.md51
-rw-r--r--doc/api/merge_requests.md12
-rw-r--r--doc/development/code_review.md4
-rw-r--r--doc/development/database/avoiding_downtime_in_migrations.md14
-rw-r--r--doc/gitlab-basics/feature_branch_workflow.md14
-rw-r--r--doc/topics/git/feature_branch_development.md111
-rw-r--r--doc/topics/git/img/create_merge_request_v13_1.pngbin6275 -> 0 bytes
-rw-r--r--doc/topics/git/img/modify_branches_v13_1.pngbin25337 -> 0 bytes
-rw-r--r--doc/user/project/issues/managing_issues.md2
-rw-r--r--doc/user/project/merge_requests/approvals/settings.md12
-rw-r--r--doc/user/project/merge_requests/getting_started.md158
-rw-r--r--doc/user/project/merge_requests/index.md18
-rw-r--r--doc/user/project/settings/index.md14
14 files changed, 126 insertions, 285 deletions
diff --git a/doc/api/api_resources.md b/doc/api/api_resources.md
index 531d679a34d..0b39e30885e 100644
--- a/doc/api/api_resources.md
+++ b/doc/api/api_resources.md
@@ -40,6 +40,7 @@ The following API resources are available in the project context:
| [Deploy tokens](deploy_tokens.md) | `/projects/:id/deploy_tokens` (also available for groups and standalone) |
| [Deployments](deployments.md) | `/projects/:id/deployments` |
| [Discussions](discussions.md) (threaded comments) | `/projects/:id/issues/.../discussions`, `/projects/:id/snippets/.../discussions`, `/projects/:id/merge_requests/.../discussions`, `/projects/:id/commits/.../discussions` (also available for groups) |
+| [Draft Notes](draft_notes.md) (comments) | `/projects/:id/merge_requests/.../draft_notes`
| [Environments](environments.md) | `/projects/:id/environments` |
| [Error Tracking](error_tracking.md) | `/projects/:id/error_tracking/settings` |
| [Events](events.md) | `/projects/:id/events` (also available for users and standalone) |
diff --git a/doc/api/draft_notes.md b/doc/api/draft_notes.md
new file mode 100644
index 00000000000..423ba2bb31d
--- /dev/null
+++ b/doc/api/draft_notes.md
@@ -0,0 +1,51 @@
+---
+stage: Create
+group: Code Review
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
+---
+
+# Draft Notes API **(FREE)**
+
+Draft notes are pending, unpublished comments on merge requests. They can be either start a discussion, or be associated with an existing discussion as a reply. They are viewable only by the author until they are published.
+
+## List all merge request draft notes
+
+Gets a list of all draft notes for a single merge request.
+
+```plaintext
+GET /projects/:id/merge_requests/:merge_request_iid/draft_notes
+```
+
+| Attribute | Type | Required | Description |
+| ------------------- | ---------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `id` | integer or string | yes | The ID or [URL-encoded path of the project](rest/index.md#namespaced-path-encoding)
+| `merge_request_iid` | integer | yes | The IID of a project merge request
+
+```json
+{
+ id: 5,
+ author_id: 23,
+ merge_request_id: 11,
+ resolve_discussion: false,
+ discussion_id: nil,
+ note: "Example title",
+ commit_id: nil,
+ line_code: nil,
+ position:
+ {
+ base_sha: nil,
+ start_sha: nil,
+ head_sha: nil,
+ old_path: nil,
+ new_path: nil,
+ position_type: "text",
+ old_line: nil,
+ new_line: nil,
+ line_range: nil
+ }
+}
+```
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/merge_requests/11/draft_notes"
+```
diff --git a/doc/api/merge_requests.md b/doc/api/merge_requests.md
index 1a8b39db062..024593b2c6b 100644
--- a/doc/api/merge_requests.md
+++ b/doc/api/merge_requests.md
@@ -59,8 +59,8 @@ Supported attributes:
| `my_reaction_emoji` | string | **{dotted-circle}** No | Returns merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. |
| `not` | Hash | **{dotted-circle}** No | Returns merge requests that do not match the parameters supplied. Accepts: `labels`, `milestone`, `author_id`, `author_username`, `assignee_id`, `assignee_username`, `reviewer_id`, `reviewer_username`, `my_reaction_emoji`. |
| `order_by` | string | **{dotted-circle}** No | Returns requests ordered by `created_at`, `title`, or `updated_at` fields. Default is `created_at`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/331625) in GitLab 14.8.|
-| `reviewer_id` | integer | **{dotted-circle}** No | Returns merge requests which have the user as a [reviewer](../user/project/merge_requests/getting_started.md#reviewer) with the given user `id`. `None` returns merge requests with no reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive with `reviewer_username`. |
-| `reviewer_username` | string | **{dotted-circle}** No | Returns merge requests which have the user as a [reviewer](../user/project/merge_requests/getting_started.md#reviewer) with the given `username`. `None` returns merge requests with no reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive with `reviewer_id`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49341) in GitLab 13.8. |
+| `reviewer_id` | integer | **{dotted-circle}** No | Returns merge requests which have the user as a [reviewer](../user/project/merge_requests/reviews/index.md) with the given user `id`. `None` returns merge requests with no reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive with `reviewer_username`. |
+| `reviewer_username` | string | **{dotted-circle}** No | Returns merge requests which have the user as a [reviewer](../user/project/merge_requests/reviews/index.md) with the given `username`. `None` returns merge requests with no reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive with `reviewer_id`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49341) in GitLab 13.8. |
| `scope` | string | **{dotted-circle}** No | Returns merge requests for the given scope: `created_by_me`, `assigned_to_me` or `all`. Defaults to `created_by_me`. |
| `search` | string | **{dotted-circle}** No | Search merge requests against their `title` and `description`. |
| `sort` | string | **{dotted-circle}** No | Returns requests sorted in `asc` or `desc` order. Default is `desc`. |
@@ -260,8 +260,8 @@ Supported attributes:
| `my_reaction_emoji` | string | **{dotted-circle}** No | Returns merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. |
| `not` | Hash | **{dotted-circle}** No | Returns merge requests that do not match the parameters supplied. Accepts: `labels`, `milestone`, `author_id`, `author_username`, `assignee_id`, `assignee_username`, `reviewer_id`, `reviewer_username`, `my_reaction_emoji`. |
| `order_by` | string | **{dotted-circle}** No | Returns requests ordered by `created_at`, `title` or `updated_at` fields. Default is `created_at`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/331625) in GitLab 14.8. |
-| `reviewer_id` | integer | **{dotted-circle}** No | Returns merge requests which have the user as a [reviewer](../user/project/merge_requests/getting_started.md#reviewer) with the given user `id`. `None` returns merge requests with no reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive with `reviewer_username`. |
-| `reviewer_username` | string | **{dotted-circle}** No | Returns merge requests which have the user as a [reviewer](../user/project/merge_requests/getting_started.md#reviewer) with the given `username`. `None` returns merge requests with no reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive with `reviewer_id`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49341) in GitLab 13.8. |
+| `reviewer_id` | integer | **{dotted-circle}** No | Returns merge requests which have the user as a [reviewer](../user/project/merge_requests/reviews/index.md) with the given user `id`. `None` returns merge requests with no reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive with `reviewer_username`. |
+| `reviewer_username` | string | **{dotted-circle}** No | Returns merge requests which have the user as a [reviewer](../user/project/merge_requests/reviews/index.md) with the given `username`. `None` returns merge requests with no reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive with `reviewer_id`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49341) in GitLab 13.8. |
| `scope` | string | **{dotted-circle}** No | Returns merge requests for the given scope: `created_by_me`, `assigned_to_me`, or `all`. |
| `search` | string | **{dotted-circle}** No | Search merge requests against their `title` and `description`. |
| `sort` | string | **{dotted-circle}** No | Returns requests sorted in `asc` or `desc` order. Default is `desc`. |
@@ -449,8 +449,8 @@ Supported attributes:
| `non_archived` | boolean | **{dotted-circle}** No | Returns merge requests from non archived projects only. Default is `true`. |
| `not` | Hash | **{dotted-circle}** No | Returns merge requests that do not match the parameters supplied. Accepts: `labels`, `milestone`, `author_id`, `author_username`, `assignee_id`, `assignee_username`, `reviewer_id`, `reviewer_username`, `my_reaction_emoji`. |
| `order_by` | string | **{dotted-circle}** No | Returns merge requests ordered by `created_at`, `title` or `updated_at` fields. Default is `created_at`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/331625) in GitLab 14.8. |
-| `reviewer_id` | integer | **{dotted-circle}** No | Returns merge requests which have the user as a [reviewer](../user/project/merge_requests/getting_started.md#reviewer) with the given user `id`. `None` returns merge requests with no reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive with `reviewer_username`. |
-| `reviewer_username` | string | **{dotted-circle}** No | Returns merge requests which have the user as a [reviewer](../user/project/merge_requests/getting_started.md#reviewer) with the given `username`. `None` returns merge requests with no reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive with `reviewer_id`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49341) in GitLab 13.8. |
+| `reviewer_id` | integer | **{dotted-circle}** No | Returns merge requests which have the user as a [reviewer](../user/project/merge_requests/reviews/index.md) with the given user `id`. `None` returns merge requests with no reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive with `reviewer_username`. |
+| `reviewer_username` | string | **{dotted-circle}** No | Returns merge requests which have the user as a [reviewer](../user/project/merge_requests/reviews/index.md) with the given `username`. `None` returns merge requests with no reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive with `reviewer_id`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49341) in GitLab 13.8. |
| `scope` | string | **{dotted-circle}** No | Returns merge requests for the given scope: `created_by_me`, `assigned_to_me` or `all`. |
| `search` | string | **{dotted-circle}** No | Search merge requests against their `title` and `description`. |
| `source_branch` | string | **{dotted-circle}** No | Returns merge requests with the given source branch. |
diff --git a/doc/development/code_review.md b/doc/development/code_review.md
index e194453565a..398f0c17bac 100644
--- a/doc/development/code_review.md
+++ b/doc/development/code_review.md
@@ -37,7 +37,7 @@ also to spread the workload.
For assistance with security scans or comments, include the Application Security Team (`@gitlab-com/gl-security/appsec`).
-The reviewers use the [reviewer functionality](../user/project/merge_requests/getting_started.md#reviewer) in the sidebar.
+The reviewers use the [reviewer functionality](../user/project/merge_requests/reviews/index.md) in the sidebar.
Reviewers can add their approval by [approving additionally](../user/project/merge_requests/approvals/index.md#approve-a-merge-request).
Depending on the areas your merge request touches, it must be **approved** by one
@@ -459,7 +459,7 @@ first time.
### Requesting a review
When you are ready to have your merge request reviewed,
-you should [request an initial review](../user/project/merge_requests/getting_started.md#reviewer) by selecting a reviewer based on the [approval guidelines](#approval-guidelines).
+you should [request an initial review](../user/project/merge_requests/reviews/index.md) by selecting a reviewer based on the [approval guidelines](#approval-guidelines).
When a merge request has multiple areas for review, it is recommended you specify which area a reviewer should be reviewing, and at which stage (first or second).
This will help team members who qualify as a reviewer for multiple areas to know which area they're being requested to review.
diff --git a/doc/development/database/avoiding_downtime_in_migrations.md b/doc/development/database/avoiding_downtime_in_migrations.md
index a18e998f1d2..fc1f94cbc2c 100644
--- a/doc/development/database/avoiding_downtime_in_migrations.md
+++ b/doc/development/database/avoiding_downtime_in_migrations.md
@@ -451,10 +451,11 @@ to keep in sync both columns for any new records ([see an example](https://gitla
```ruby
class InitializeConversionOfCiStagesToBigint < Gitlab::Database::Migration[2.1]
-
TABLE = :ci_stages
COLUMNS = %i[id]
+ enable_lock_retries!
+
def up
initialize_conversion_of_integer_to_bigint(TABLE, COLUMNS)
end
@@ -475,19 +476,16 @@ module Ci
end
```
-To migrate existing data, we introduced new type of _batched background migrations_.
-Unlike the classic background migrations, built on top of Sidekiq, batched background migrations
-don't have to enqueue and schedule all the background jobs at the beginning.
-They also have other advantages, like automatic tuning of the batch size, better progress visibility,
-and collecting metrics. To start the process, use the provided `backfill_conversion_of_integer_to_bigint`
-helper ([example](https://gitlab.com/gitlab-org/gitlab/-/blob/41fbe34a4725a4e357a83fda66afb382828767b2/db/migrate/20210608072346_backfill_ci_stages_for_bigint_conversion.rb)):
+Enqueue batched background migration ([another example](https://gitlab.com/gitlab-org/gitlab/-/blob/41fbe34a4725a4e357a83fda66afb382828767b2/db/migrate/20210608072346_backfill_ci_stages_for_bigint_conversion.rb))
+to migrate the existing data:
```ruby
class BackfillCiStagesForBigintConversion < Gitlab::Database::Migration[2.1]
-
TABLE = :ci_stages
COLUMNS = %i[id]
+ restrict_gitlab_migration gitlab_schema: :gitlab_ci
+
def up
backfill_conversion_of_integer_to_bigint(TABLE, COLUMNS)
end
diff --git a/doc/gitlab-basics/feature_branch_workflow.md b/doc/gitlab-basics/feature_branch_workflow.md
index 06d88cf14f6..ce4aa0007c6 100644
--- a/doc/gitlab-basics/feature_branch_workflow.md
+++ b/doc/gitlab-basics/feature_branch_workflow.md
@@ -7,19 +7,23 @@ disqus_identifier: 'https://docs.gitlab.com/ee/workflow/workflow.html'
# Feature branch workflow **(FREE)**
-1. Clone project:
+To merge changes from a local branch to a feature branch, follow this workflow.
+
+1. Clone the project if you haven't already:
```shell
git clone git@example.com:project-name.git
```
-1. Create branch with your feature:
+1. Change directories so you are in the project directory.
+1. Create a branch for your feature:
```shell
git checkout -b feature_name
```
-1. Write code. Commit changes:
+1. Write code for the feature.
+1. Add the code to the staging area and add a commit message for your changes:
```shell
git commit -am "My feature is ready"
@@ -31,6 +35,6 @@ disqus_identifier: 'https://docs.gitlab.com/ee/workflow/workflow.html'
git push origin feature_name
```
-1. Review your code on commits page.
-1. Create a merge request.
+1. Review your code: On the left sidebar, go to **Repository > Commits**.
+1. [Create a merge request](../user/project/merge_requests/creating_merge_requests.md).
1. Your team lead reviews the code and merges it to the main branch.
diff --git a/doc/topics/git/feature_branch_development.md b/doc/topics/git/feature_branch_development.md
index d53c8eae835..4125d8e8fdb 100644
--- a/doc/topics/git/feature_branch_development.md
+++ b/doc/topics/git/feature_branch_development.md
@@ -1,108 +1,11 @@
---
-stage: Create
-group: Source Code
-info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments"
-type: how-tos
+redirect_to: 'index.md'
+remove_date: '2023-03-31'
---
-# Develop on a feature branch **(FREE)**
+This document was moved to [another location](index.md).
-GitLab values encourage the use of [Minimal Viable Change (MVC)](https://about.gitlab.com/handbook/values/#minimal-viable-change-mvc).
-However, viable changes are not always small. In such cases, it can help to set up a dedicated feature branch.
-People can contribute MRs to that feature branch, without affecting the functionality of the [default branch](../../user/project/repository/branches/default.md).
-
-Once work on the development branch is complete, then the feature branch can be finally merged into the default branch.
-
-GitLab frequently implements this process whenever there is an MVC that requires multiple MRs.
-
-## Use case: GitLab release posts
-
-This section describes the use case with GitLab [release posts](https://about.gitlab.com/handbook/marketing/blog/release-posts/).
-Dozens of GitLab team members contribute to each monthly release post.
-In such cases, it may be more efficient to submit an MR on the release post feature branch instead of the [default branch](../../user/project/repository/branches/default.md).
-
-In this case, the feature branch would be `release-X-Y`. Assuming the `release-X-Y` branch already exists, you can set up an MR against that branch, with the following steps:
-
-1. Navigate to the [default branch](../../user/project/repository/branches/default.md) (here, `main`):
-
- ```shell
- git checkout main
- ```
-
-1. Make sure you have the latest version of your repository:
-
- ```shell
- git fetch
- git pull
- ```
-
-1. Check out the feature branch:
-
- ```shell
- git checkout release-x-y
- ```
-
-1. Create a new branch (`test-branch`) against the feature branch (`release-x-y`):
-
- ```shell
- git checkout -b test-branch release-x-y
- ```
-
- You should now be on a branch named `test-branch`.
-
-1. Make desired changes on the `test-branch`.
-1. Add your changes, commit, and push to the `test-branch`:
-
- ```shell
- git add .
- ```
-
-1. Commit your changes:
-
- ```shell
- git commit -m "Some good reason"
- ```
-
-1. Push your changes to the repository:
-
- ```shell
- git push --set-upstream origin test-branch
- ```
-
-1. Navigate to the URL for your repository. In this case, the repository is `www-gitlab-com`, available at `https://gitlab.com/gitlab-com/www-gitlab-com`.
-
- If needed, sign in to GitLab. You should then see an option to **Create merge request**:
-
- ![Create merge request](img/create_merge_request_v13_1.png)
-
-1. After you select **Create merge request**, an option to **Change branches** displays. Select that option.
-
-1. In the **New merge request** screen, you can now select the **Source** and **Target** branches.
-In the screenshot shown,
-we have selected `test-branch` as the source, and `release-13-0` as the target.
-
- ![Modify branches](img/modify_branches_v13_1.png)
-
-1. Once you've selected the Source and Target branches, select **Compare branches and continue**.
- You should see an entry similar to:
-
- ```plaintext
- New merge request
-
- From test-branch into release-13-0
- ```
-
- An entry like this confirms your merge request's destination.
-
-1. Make any additional changes in the **New merge request** screen, and select **Create merge request**.
-1. In the new merge request, look for **Request to merge**. An entry similar to this displays:
-
- ```plaintext
- Request to merge test-branch into release-13-0
- ```
-
- That confirms you've set up the MR to merge into the specified branch, not the [default branch](../../user/project/repository/branches/default.md).
-
-1. Proceed with the change as you would with any other MR.
-1. When your MR is approved, and an appropriate user merges that MR, you can rest assured that your work is incorporated directly into the feature branch.
-When the feature branch is ready, it can then be merged into the [default branch](../../user/project/repository/branches/default.md).
+<!-- This redirect file can be deleted after <2023-03-31>. -->
+<!-- Redirects that point to other docs in the same project expire in three months. -->
+<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
+<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/topics/git/img/create_merge_request_v13_1.png b/doc/topics/git/img/create_merge_request_v13_1.png
deleted file mode 100644
index d59cfc74290..00000000000
--- a/doc/topics/git/img/create_merge_request_v13_1.png
+++ /dev/null
Binary files differ
diff --git a/doc/topics/git/img/modify_branches_v13_1.png b/doc/topics/git/img/modify_branches_v13_1.png
deleted file mode 100644
index 781f54fc3c0..00000000000
--- a/doc/topics/git/img/modify_branches_v13_1.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/issues/managing_issues.md b/doc/user/project/issues/managing_issues.md
index a5399b70c8f..53f19d544dc 100644
--- a/doc/user/project/issues/managing_issues.md
+++ b/doc/user/project/issues/managing_issues.md
@@ -218,7 +218,7 @@ description:
- Issues `#4` and `#6` are closed automatically when the MR is merged.
- Issue `#5` is marked as a [related issue](related_issues.md), but it's not closed automatically.
-Alternatively, when you [create a merge request from an issue](../merge_requests/getting_started.md#merge-requests-to-close-issues),
+Alternatively, when you [create a merge request from an issue](../merge_requests/creating_merge_requests.md#from-an-issue),
it inherits the issue's milestone and labels.
For performance reasons, automatic issue closing is disabled for the very first
diff --git a/doc/user/project/merge_requests/approvals/settings.md b/doc/user/project/merge_requests/approvals/settings.md
index a8acab3898b..bfc854b9f2c 100644
--- a/doc/user/project/merge_requests/approvals/settings.md
+++ b/doc/user/project/merge_requests/approvals/settings.md
@@ -121,13 +121,17 @@ permission enables an electronic signature for approvals, such as the one define
## Remove all approvals when commits are added to the source branch
-By default, an approval on a merge request remains in place, even if you add more changes
-after the approval. If you want to remove all existing approvals on a merge request
-when more changes are added to it:
+By default, an approval on a merge request is removed when you add more changes
+after the approval. In GitLab Premium and higher tiers, to keep existing approvals
+after more changes are added to the merge request:
1. On the left sidebar, select **Settings > Merge requests**.
1. In the **Merge request approvals** section, scroll to **Approval settings** and
- select **Remove all approvals**.
+ clear the **Remove all approvals** checkbox.
+
+ NOTE:
+ This setting is not available in GitLab Free.
+
1. Select **Save changes**.
Approvals aren't removed when a merge request is [rebased from the UI](../methods/index.md#rebasing-in-semi-linear-merge-methods)
diff --git a/doc/user/project/merge_requests/getting_started.md b/doc/user/project/merge_requests/getting_started.md
index 470c4ab9c2f..4125d8e8fdb 100644
--- a/doc/user/project/merge_requests/getting_started.md
+++ b/doc/user/project/merge_requests/getting_started.md
@@ -1,155 +1,11 @@
---
-stage: Create
-group: Code Review
-info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
-description: "Getting started with merge requests."
+redirect_to: 'index.md'
+remove_date: '2023-03-31'
---
-# Getting started with merge requests **(FREE)**
+This document was moved to [another location](index.md).
-A merge request (**MR**) is the basis of GitLab as a tool for code
-collaboration and version control.
-
-When working in a Git-based platform, you can use branching
-strategies to collaborate on code.
-
-A repository is composed by its _default branch_, which contains
-the major version of the codebase, from which you create minor
-branches, also called _feature branches_, to propose changes to
-the codebase without introducing them directly into the major
-version of the codebase.
-
-Branching is especially important when collaborating with others,
-avoiding changes to be pushed directly to the default branch
-without prior reviews, tests, and approvals.
-
-When you create a new feature branch, change the files, and push
-it to GitLab, you have the option to create a **merge request**,
-which is essentially a _request_ to merge one branch into another.
-
-The branch you added your changes into is called _source branch_
-while the branch you request to merge your changes into is
-called _target branch_.
-
-The target branch can be the default or any other branch, depending
-on the branching strategies you choose.
-
-In a merge request, beyond visualizing the differences between the
-original content and your proposed changes, you can execute a
-[significant number of tasks](#what-you-can-do-with-merge-requests)
-before concluding your work and merging the merge request.
-
-You can watch our [GitLab Flow video](https://www.youtube.com/watch?v=InKNIvky2KE) for
-a quick overview of working with merge requests.
-
-## What you can do with merge requests
-
-When you start a new merge request, you can immediately include the following
-options. You can also add them later by either selecting **Edit** on the merge
-request's page at the top-right side, or by using
-[keyboard shortcuts for merge requests](../../shortcuts.md#merge-requests):
-
-- [Assign](index.md#assign-a-user-to-a-merge-request) the merge request to a colleague for review. With [multiple assignees](index.md#assign-multiple-users), you can assign it to more than one person at a time.
-- Set a [milestone](../milestones/index.md) to track time-sensitive changes.
-- Add [labels](../labels.md) to help contextualize and filter your merge requests over time.
-- [Require approval](approvals/index.md#required-approvals) from your team.
-- [Close issues automatically](#merge-requests-to-close-issues) when they are merged.
-- Enable the [delete source branch when merge request is accepted](#deleting-the-source-branch) option to keep your repository clean.
-- Enable the [squash commits when merge request is accepted](squash_and_merge.md) option to combine all the commits into one before merging, thus keep a clean commit history in your repository.
-- Set the merge request as a [**Draft**](drafts.md) to avoid accidental merges before it is ready.
-
-After you have created the merge request, you can also:
-
-- [Discuss](../../discussions/index.md) your implementation with your team in the merge request thread.
-- [Perform inline code reviews](reviews/index.md).
-- Add [merge request dependencies](dependencies.md) to restrict it to be merged only when other merge requests have been merged.
-- Preview continuous integration [pipelines on the merge request widget](widgets.md).
-- Preview how your changes look directly on your deployed application with [Review Apps](widgets.md#live-preview-with-review-apps).
-- [Allow collaboration on merge requests across forks](allow_collaboration.md).
-- Perform a [Review](reviews/index.md) to create multiple comments on a diff and publish them when you're ready.
-- Add [code suggestions](reviews/suggestions.md) to change the content of merge requests directly into merge request threads, and easily apply them to the codebase directly from the UI.
-- Add a time estimation and the time spent with that merge request with [Time Tracking](../time_tracking.md#time-tracking).
-
-Many of these options can be set:
-
-- From the merge request page, with [keyboard shortcuts](../../shortcuts.md#merge-requests).
-- When pushing changes from the command line, with [Git push options](../push_options.md).
-
-See also other [features associated to merge requests](reviews/index.md#associated-features).
-
-### Reviewer
-
-WARNING:
-Requesting a code review is an important part of contributing code. However, deciding who should review
-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.
-
-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
-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
-who may only be involved in one aspect of the merge request, such as a peer review.
-
-To request a review of a merge request, expand the **Reviewers** select box in
-the right-hand sidebar. Search for the users you want to request a review from.
-When selected, GitLab creates a [to-do list item](../../todos.md) for each reviewer.
-
-To learn more, read [Review a merge request](reviews/index.md).
-
-#### Multiple reviewers for merge requests **(PREMIUM)**
-
-> Introduced in GitLab 13.7.
-
-Merge requests may often require multiple team members to review parts of the
-proposed changes. You can add multiple reviewers to a merge request, making it
-easier to see who is reviewing changes and who has approved changes.
-
-### Merge requests to close issues
-
-To create a merge request to close an issue when it's merged, you can either:
-
-- [Add a note in the MR description](../issues/managing_issues.md#closing-issues-automatically).
-- In the issue, select **Create a merge request**. Then, you can either:
-
- - Create a new branch and [a draft merge request](../merge_requests/drafts.md)
- in one action. The branch is named `issuenumber-title` by default, but you can
- choose any name, and GitLab verifies that it's not already in use. The merge request
- inherits the milestone and labels of the issue, and is set to automatically
- close the issue when it is merged.
- - Create a [new branch](creating_merge_requests.md#from-an-issue)
- only, with its name starting with the issue number.
-
-If the issue is [confidential](../issues/confidential_issues.md),
-you may want to use a different workflow for
-[merge requests for confidential issues](confidential.md)
-to prevent confidential information from being exposed.
-
-### Deleting the source branch
-
-When creating a merge request, select the
-**Delete source branch when merge request accepted** option, and the source
-branch is deleted when the merge request is merged. To make this option
-enabled by default for all new merge requests, enable it in the
-[project's settings](../settings/index.md#configure-merge-request-settings-for-a-project).
-
-This option is also visible in an existing merge request next to
-the merge request button and can be selected or cleared before merging.
-It is only visible to users with the Maintainer role
-in the source project.
-
-If the user viewing the merge request does not have the correct
-permissions to delete the source branch and the source branch
-is set for deletion, the merge request widget displays the
-**Deletes source branch** text.
-
-![Delete source branch status](img/remove_source_branch_status.png)
-
-## Recommendations and best practices for merge requests
-
-- 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
- at once. By doing so, you save CI/CD minutes.
-- Delete feature branches on merge or after merging them to keep your repository clean.
-- Take one thing at a time and ship the smallest changes possible. By doing so,
- reviews are faster and your changes are less prone to errors.
-- Do not use capital letters nor special chars in branch names.
+<!-- This redirect file can be deleted after <2023-03-31>. -->
+<!-- Redirects that point to other docs in the same project expire in three months. -->
+<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
+<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
diff --git a/doc/user/project/merge_requests/index.md b/doc/user/project/merge_requests/index.md
index 6fcc696285d..2193440d3a2 100644
--- a/doc/user/project/merge_requests/index.md
+++ b/doc/user/project/merge_requests/index.md
@@ -7,8 +7,9 @@ type: index, reference
# Merge requests **(FREE)**
-Merge requests (MRs) are the way you check source code changes into a branch.
-When you open a merge request, you can visualize and collaborate on the code changes before merge.
+To incorporate changes from a source branch to a target branch, you use a *merge request* (MR).
+
+When you open a merge request, you can visualize and collaborate on the changes before merge.
Merge requests include:
- A description of the request.
@@ -17,7 +18,9 @@ Merge requests include:
- A comment section for discussion threads.
- The list of commits.
-Read more about [how to get started](getting_started.md).
+<i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
+For a quick overview of merge requests,
+view [this GitLab Flow video](https://www.youtube.com/watch?v=InKNIvky2KE).
## Create a merge request
@@ -205,6 +208,15 @@ To delete a merge request:
1. Go to the merge request you want to delete, and select **Edit**.
1. Scroll to the bottom of the page, and select **Delete merge request**.
+### Delete the source branch on merge
+
+You can delete the source branch for a merge request:
+
+- When you create a merge request, by selecting **Delete source branch when merge request accepted**.
+- When you merge a merge request, if you have the Maintainer role, by selecting **Delete source branch**.
+
+An administrator can make this option the default in the project's settings.
+
### Update merge requests when target branch merges **(FREE SELF)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/320902) in GitLab 13.9.
diff --git a/doc/user/project/settings/index.md b/doc/user/project/settings/index.md
index 39c14b333c2..ed4eea56514 100644
--- a/doc/user/project/settings/index.md
+++ b/doc/user/project/settings/index.md
@@ -158,7 +158,7 @@ Configure your project's merge request settings:
- Enable [merge only if pipeline succeeds](../merge_requests/merge_when_pipeline_succeeds.md).
- Enable [merge only when all threads are resolved](../../discussions/index.md#prevent-merge-unless-all-threads-are-resolved).
- Enable [require an associated issue from Jira](../../../integration/jira/issues.md#require-associated-jira-issue-for-merge-requests-to-be-merged).
-- Enable [`delete source branch after merge` option by default](../merge_requests/getting_started.md#deleting-the-source-branch).
+- Enable [**Delete source branch when merge request is accepted** option by default](#delete-the-source-branch-on-merge-by-default).
- Configure [suggested changes commit messages](../merge_requests/reviews/suggestions.md#configure-the-commit-message-for-applied-suggestions).
- Configure [merge and squash commit message templates](../merge_requests/commit_templates.md).
- Configure [the default target project](../merge_requests/creating_merge_requests.md#set-the-default-target-project) for merge requests coming from forks.
@@ -230,6 +230,18 @@ To rename a repository:
1. In the **Change path** text box, edit the path.
1. Select **Change path**.
+## Delete the source branch on merge by default
+
+In merge requests, you can change the default behavior so that the
+**Delete the source branch** checkbox is always selected.
+
+To set this default:
+
+1. On the top bar, select **Main menu > Projects** and find your project.
+1. On the left sidebar, select **Settings > Merge requests**.
+1. Select **Enable "Delete source branch" option by default**.
+1. Select **Save changes**.
+
## Transfer a project to another namespace
When you transfer a project to another namespace, you move the project to a different group.