gitlab-org--gitlab-foss/app/views/projects/merge_requests/show
Dmitriy Zaporozhets 5ef196621e Merge branch 'better-mr-instructions' into 'master'
Better merge request manual instructions

I noticed the current instructions for manually merging a merge request that was submitted from a fork could create unnecessary merge requests or strange history. Imagine this:

1. Alice creates a repository and commits / pushes a single commit with SHA1 `A` to `master`.
2. Bob forks this repository and creates a new branch `myfeature` on `master` (`A`)
3. Alice commits `B` to `master` (which has the parent `A`)
4. Bob creates two commits on `myfeature` `P` and `Q`.
5. Bob submits the merge request to merge his `myfeature` into Alice's `master` branch.
6. Alice follows the manual merge request instructions:
  1. `git checkout -b bob/repo-myfeature master`
  2. `git pull http://... myfeature`

The branch `bob/repo-myfeature` was created from Alice's current `master`, which was `B`. When the `pull` is executed, git will fetch Bob's branch and then merged the fetched branch `Q` into the current branch's location `B`. This creates an unnecessary merge commit from `master` into the branch Alice is trying to merge. No harm is done, but the history is a bit messier.

This is even worse if Alice has set `git pull` to rebase by default. In this case, the commit `B` is rebased on top of `Q`. When Alice checks out `master` and merges in the branch, there will actually be a duplicate `B` commit.

These new instructions instead tell the user to fetch Bob's `myfeature` branch. This will fetch the necessary commits `P` and `Q` and create a temporary ref `FETCH_HEAD` pointing to `Q`. Alice will then create her local `bob/repo-myfeature` branch starting at `FETCH_HEAD`. No unnecessary merge commits, and no accidental rebasing.

See merge request !16
2014-11-10 19:39:25 +00:00
..
_commits.html.haml Upgrade to Font Awesome v4.2 2014-10-03 12:19:24 +02:00
_context.html.haml Awesome shortcuts for GitLab 2014-09-01 11:49:17 +02:00
_diffs.html.haml Use new diff parsing logic 2014-09-08 16:27:12 +03:00
_how_to_merge.html.haml Instruct users to fetch merge request branch 2014-02-08 22:15:44 -05:00
_mr_accept.html.haml Move "modify merge message link" to the right to prevent accidently hiting accept button 2014-10-14 17:48:32 +03:00
_mr_box.html.haml Add task lists to issues and merge requests 2014-10-05 22:15:27 -05:00
_mr_ci.html.haml Style merge request CI widget to match MR/Issue box 2014-10-07 15:11:18 +03:00
_mr_title.html.haml Fix fa-download icon 2014-10-04 16:58:59 +02:00
_no_accept.html.haml Restyle merge request accept and ci widget 2014-04-06 17:10:37 +03:00
_participants.html.haml Make labels clickable 2014-09-11 14:18:00 +03:00
_remove_source_branch.html.haml Upgrade to Font Awesome v4.2 2014-10-03 12:19:24 +02:00
_state_widget.html.haml Show merge in progress message if MR is locked 2014-10-15 15:52:39 +03:00