summaryrefslogtreecommitdiff
path: root/app/views/projects/merge_requests/_how_to_merge.html.haml
blob: 928b54ea28f75dc7409b4aad12570ae18ecab5a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#modal_merge_info.modal{ tabindex: '-1' }
  .modal-dialog.modal-lg
    .modal-content
      .modal-header
        %h3.modal-title Check out, review, and merge locally
        %button.close{ type: "button", "data-dismiss": "modal", "aria-label" => _('Close') }
          %span{ "aria-hidden": true } ×
      .modal-body
        %p
          %strong Step 1.
          Fetch and check out the branch for this merge request
        = clipboard_button(target: "pre#merge-info-1", title: "Copy commands to clipboard")
        %pre.dark#merge-info-1
          - if @merge_request.for_fork?
            :preserve
              -# All repo/branch refs have been quoted to allow support for special characters (such as #my-branch)
              git fetch "#{h default_url_to_repo(@merge_request.source_project)}" "#{h @merge_request.source_branch}"
              git checkout -b "#{h @merge_request.source_project_path}-#{h @merge_request.source_branch}" FETCH_HEAD
          - else
            :preserve
              git fetch origin
              git checkout -b "#{h @merge_request.source_branch}" "origin/#{h @merge_request.source_branch}"
        %p
          %strong Step 2.
          Review the changes locally

        %p
          %strong Step 3.
          Merge the branch and fix any conflicts that come up
        = clipboard_button(target: "pre#merge-info-3", title: "Copy commands to clipboard")
        %pre.dark#merge-info-3
          - if @merge_request.for_fork?
            :preserve
              git fetch origin
              git checkout "origin/#{h @merge_request.target_branch}"
              git merge --no-ff "#{h @merge_request.source_project_path}-#{h @merge_request.source_branch}"
          - else
            :preserve
              git fetch origin
              git checkout "origin/#{h @merge_request.target_branch}"
              git merge --no-ff "#{h @merge_request.source_branch}"
        %p
          %strong Step 4.
          Push the result of the merge to GitLab
        = clipboard_button(target: "pre#merge-info-4", title: "Copy commands to clipboard")
        %pre.dark#merge-info-4
          :preserve
            git push origin "#{h @merge_request.target_branch}"
        - unless @merge_request.can_be_merged_by?(current_user)
          %p
            Note that pushing to GitLab requires write access to this repository.
        %p
          %strong Tip:
          = succeed '.' do
            You can also checkout merge requests locally by
            = link_to 'following these guidelines', help_page_path('user/project/merge_requests/index.md', anchor: "checkout-merge-requests-locally"), target: '_blank', rel: 'noopener noreferrer'