summaryrefslogtreecommitdiff
path: root/app/views/projects/merge_requests/_how_to_merge.html.haml
diff options
context:
space:
mode:
Diffstat (limited to 'app/views/projects/merge_requests/_how_to_merge.html.haml')
-rw-r--r--app/views/projects/merge_requests/_how_to_merge.html.haml63
1 files changed, 63 insertions, 0 deletions
diff --git a/app/views/projects/merge_requests/_how_to_merge.html.haml b/app/views/projects/merge_requests/_how_to_merge.html.haml
new file mode 100644
index 00000000000..766cb272bec
--- /dev/null
+++ b/app/views/projects/merge_requests/_how_to_merge.html.haml
@@ -0,0 +1,63 @@
+#modal_merge_info.modal
+ .modal-dialog
+ .modal-content
+ .modal-header
+ %a.close{ href: "#", "data-dismiss" => "modal" } ×
+ %h3 Check out, review, and merge locally
+ .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
+ 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 checkout #{h @merge_request.target_branch}
+ git merge --no-ff #{h @merge_request.source_project_path}-#{h @merge_request.source_branch}
+ - else
+ :preserve
+ git checkout #{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'
+
+:javascript
+ $(function(){
+ var modal = $('#modal_merge_info').modal({modal: true, show:false});
+ $('.how_to_merge_link').bind("click", function(){
+ modal.show();
+ });
+ $('.modal-header .close').bind("click", function(){
+ modal.hide();
+ })
+ })