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
diff options
context:
space:
mode:
authorAchilleas Pipinellis <axilleas@axilleas.me>2016-09-05 19:25:05 +0300
committerAchilleas Pipinellis <axilleas@axilleas.me>2016-09-05 19:25:05 +0300
commitbf00e0f4b2fd8994df8f7b567839f12715a05fde (patch)
tree8747b81c85793cf980d08e2d1b15389e964dd4f8 /doc/user/project/merge_requests.md
parent99f28c50d5483d6f55e7accaf1806e68acc46568 (diff)
Add links to new docs in merge_requests.md and workflow/README.md
Diffstat (limited to 'doc/user/project/merge_requests.md')
-rw-r--r--doc/user/project/merge_requests.md144
1 files changed, 117 insertions, 27 deletions
diff --git a/doc/user/project/merge_requests.md b/doc/user/project/merge_requests.md
index f1a14e7e91c..f79535d1542 100644
--- a/doc/user/project/merge_requests.md
+++ b/doc/user/project/merge_requests.md
@@ -3,9 +3,97 @@
Merge requests allow you to exchange changes you made to source code and
collaborate with other people on the same project.
-## Checkout merge requests locally
+## Authorization for merge requests
-### By adding a git alias
+There are two main ways to have a merge request flow with GitLab:
+
+1. Working with [protected branches][] in a single repository
+1. Working with forks of an authoritative project
+
+[Learn more about the authorization for merge requests.](merge_requests/authorization_for_merge_requests.md)
+
+## Cherry-pick changes
+
+Cherry-pick any commit in the UI by simply clicking the **Cherry-pick** button
+in a merged merge requests or a commit.
+
+[Learn more about cherry-picking changes.](merge_requests/cherry_pick_changes.md)
+
+## Merge when build succeeds
+
+When reviewing a merge request that looks ready to merge but still has one or
+more CI builds running, you can set it to be merged automatically when all
+builds succeed. This way, you don't have to wait for the builds to finish and
+remember to merge the request manually.
+
+[Learn more about merging when build succeeds.](merge_requests/merge_when_build_succeeds.md)
+
+## Resolve discussion comments in merge requests reviews
+
+Keep track of the progress during a code review with resolving comments.
+Resolving comments prevents you from forgetting to address feedback and lets
+you hide discussions that are no longer relevant.
+
+[Read more about resolving discussion comments in merge requests reviews.](merge_requests/merge_request_discussion_resolution.md)
+
+## Resolve conflicts
+
+When a merge request has conflicts, GitLab may provide the option to resolve
+those conflicts in the GitLab UI.
+
+[Learn more about resolving merge conflicts in the UI.](merge_requests/resolve_conflicts.md)
+
+## Revert changes
+
+GitLab implements Git's powerful feature to revert any commit with introducing
+a **Revert** button in merge requests and commit details.
+
+[Learn more about reverting changes in the UI](merge_requests/revert_changes.md)
+
+## Merge requests versions
+
+Every time you push to a branch that is tied to a merge request, a new version
+of merge request diff is created. When you visit a merge request that contains
+more than one pushes, you can select and compare the versions of those merge
+request diffs.
+
+[Read more about the merge requests versions.](merge_requests/versions.md)
+
+## Work In Progress merge requests
+
+To prevent merge requests from accidentally being accepted before they're
+completely ready, GitLab blocks the "Accept" button for merge requests that
+have been marked as a **Work In Progress**.
+
+[Learn more about settings a merge request as "Work In Progress".](merge_requests/work_in_progress_merge_requests.md)
+
+## Ignore whitespace changes in Merge Request diff view
+
+If you click the **Hide whitespace changes** button, you can see the diff
+without whitespace changes (if there are any). This is also working when on a
+specific commit page.
+
+![MR diff](merge_requests/img/merge_request_diff.png)
+
+>**Tip:**
+You can append `?w=1` while on the diffs page of a merge request to ignore any
+whitespace changes.
+
+## Tips
+
+Here are some tips that will help you be more efficient with merge requests in
+the command line.
+
+> **Note:**
+This section might move in its own document in the future.
+
+### Checkout merge requests locally
+
+A merge request contains all the history from a repository, plus the additional
+commits added to the branch associated with the merge request. Here's a few
+tricks to checkout a merge request locally.
+
+#### Checkout locally by adding a git alias
Add the following alias to your `~/.gitconfig`:
@@ -14,17 +102,21 @@ Add the following alias to your `~/.gitconfig`:
mr = !sh -c 'git fetch $1 merge-requests/$2/head:mr-$1-$2 && git checkout mr-$1-$2' -
```
-Now you can check out a particular merge request from any repository and any remote, e.g. to check out a merge request number 5 as shown in GitLab from the `upstream` remote, do:
+Now you can check out a particular merge request from any repository and any
+remote. For example, to check out the merge request with ID 5 as shown in GitLab
+from the `upstream` remote, do:
```
-$ git mr upstream 5
+git mr upstream 5
```
-This will fetch the merge request into a local `mr-upstream-5` branch and check it out.
+This will fetch the merge request into a local `mr-upstream-5` branch and check
+it out.
-### By modifying `.git/config` for a given repository
+#### Checkout locally by modifying `.git/config` for a given repository
-Locate the section for your GitLab remote in the `.git/config` file. It looks like this:
+Locate the section for your GitLab remote in the `.git/config` file. It looks
+like this:
```
[remote "origin"]
@@ -32,9 +124,19 @@ Locate the section for your GitLab remote in the `.git/config` file. It looks li
fetch = +refs/heads/*:refs/remotes/origin/*
```
-Now add the line `fetch = +refs/merge-requests/*/head:refs/remotes/origin/merge-requests/*` to this section.
+You can open the file with:
+
+```
+git config -e
+```
+
+Now add the following line to the above section:
+
+```
+fetch = +refs/merge-requests/*/head:refs/remotes/origin/merge-requests/*
+```
-It should look like this:
+In the end, it should look like this:
```
[remote "origin"]
@@ -46,31 +148,19 @@ It should look like this:
Now you can fetch all the merge requests:
```
-$ git fetch origin
+git fetch origin
+
+...
From https://gitlab.com/gitlab-org/gitlab-ce.git
* [new ref] refs/merge-requests/1/head -> origin/merge-requests/1
* [new ref] refs/merge-requests/2/head -> origin/merge-requests/2
...
```
-To check out a particular merge request:
+And to check out a particular merge request:
```
-$ git checkout origin/merge-requests/1
+git checkout origin/merge-requests/1
```
-## Ignore whitespace changes in Merge Request diff view
-
-![MR diff](merge_requests/img/merge_request_diff.png)
-
-If you click the "Hide whitespace changes" button, you can see the diff without whitespace changes.
-
-![MR diff without whitespace](merge_requests/img/merge_request_diff_without_whitespace.png)
-
-It is also working on commits compare view.
-
-![Commit Compare](merge_requests/img/commit_compare.png)
-
-## Merge Requests versions
-
-Select an older revision to from the version dropdown.
+[protected branches]: protected_branches.md