From 09eccf4745a715013361c332b23b82ffb310af4b Mon Sep 17 00:00:00 2001 From: dosire Date: Wed, 8 Jan 2014 15:58:57 +0100 Subject: [PATCH 1/2] Instructions should create a merge commit and give people a chance to test the branch we are going to merge. --- .../show/_how_to_merge.html.haml | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/app/views/projects/merge_requests/show/_how_to_merge.html.haml b/app/views/projects/merge_requests/show/_how_to_merge.html.haml index 90483094b5..11edac6c72 100644 --- a/app/views/projects/merge_requests/show/_how_to_merge.html.haml +++ b/app/views/projects/merge_requests/show/_how_to_merge.html.haml @@ -10,34 +10,38 @@ - target_remote = @merge_request.target_project.namespace.nil? ? "target" :@merge_request.target_project.namespace.path %p %strong Step 1. - Checkout target branch and get recent objects from GitLab - Assuming remote for #{@merge_request.target_project.path_with_namespace} is called #{target_remote} - remote for #{@merge_request.source_project_path} is called #{source_remote} + Update the repo and checkout the branch we are going to merge + Assuming remote for #{@merge_request.target_project.path_with_namespace} is called #{target_remote} + remote for #{@merge_request.source_project_path} is called #{source_remote} %pre.dark :preserve - git checkout #{target_remote} #{@merge_request.target_branch} git fetch #{source_remote} + git fetch #{target_remote} + git checkout -b {@merge_request.source_branch} #{source_remote}/#{@merge_request.source_branch} %p %strong Step 2. - Merge source branch into target branch and push changes to GitLab + Merge the source branch into target branch and push changes to GitLab %pre.dark :preserve - git merge #{source_remote}/#{@merge_request.source_branch} + git checkout #{target_remote}/#{@merge_request.target_branch} + git merge --no-ff #{@merge_request.source_branch} git push #{target_remote} #{@merge_request.target_branch} + git branch -d {@merge_request.source_branch} - else %p %strong Step 1. - Checkout target branch and get recent objects from GitLab + Update the repo and checkout the branch we are going to merge + %pre.dark + :preserve + git fetch origin + git checkout -b #{@merge_request.source_branch} + %p + %strong Step 2. + Merge the source branch into target branch and push changes to GitLab %pre.dark :preserve git checkout #{@merge_request.target_branch} - git fetch origin - %p - %strong Step 2. - Merge source branch into target branch and push changes to GitLab - %pre.dark - :preserve - git merge origin/#{@merge_request.source_branch} + git merge --no-ff #{@merge_request.source_branch} git push origin #{@merge_request.target_branch} From f46620e6f4d01e4a204dc79104a6934f43c707af Mon Sep 17 00:00:00 2001 From: dosire Date: Thu, 9 Jan 2014 12:05:24 +0100 Subject: [PATCH 2/2] Instead of working with remotes Dmitriy suggested to use urls. --- .../show/_how_to_merge.html.haml | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/app/views/projects/merge_requests/show/_how_to_merge.html.haml b/app/views/projects/merge_requests/show/_how_to_merge.html.haml index 11edac6c72..9540453ce3 100644 --- a/app/views/projects/merge_requests/show/_how_to_merge.html.haml +++ b/app/views/projects/merge_requests/show/_how_to_merge.html.haml @@ -10,23 +10,19 @@ - target_remote = @merge_request.target_project.namespace.nil? ? "target" :@merge_request.target_project.namespace.path %p %strong Step 1. - Update the repo and checkout the branch we are going to merge - Assuming remote for #{@merge_request.target_project.path_with_namespace} is called #{target_remote} - remote for #{@merge_request.source_project_path} is called #{source_remote} + Checkout the branch we are going to merge and pull in the code %pre.dark :preserve - git fetch #{source_remote} - git fetch #{target_remote} - git checkout -b {@merge_request.source_branch} #{source_remote}/#{@merge_request.source_branch} + git checkout -b #{@merge_request.source_project_path}-#{@merge_request.source_branch} #{@merge_request.target_branch} + git pull #{@merge_request.source_project.http_url_to_repo} #{@merge_request.source_branch} %p %strong Step 2. - Merge the source branch into target branch and push changes to GitLab + Merge the branch and push the changes to GitLab %pre.dark :preserve - git checkout #{target_remote}/#{@merge_request.target_branch} - git merge --no-ff #{@merge_request.source_branch} - git push #{target_remote} #{@merge_request.target_branch} - git branch -d {@merge_request.source_branch} + git checkout #{@merge_request.target_branch} + git merge --no-ff #{@merge_request.source_project_path}-#{@merge_request.source_branch} + git push origin #{@merge_request.target_branch} - else %p %strong Step 1. @@ -34,10 +30,10 @@ %pre.dark :preserve git fetch origin - git checkout -b #{@merge_request.source_branch} + git checkout -b #{@merge_request.source_branch} origin/#{@merge_request.source_branch} %p %strong Step 2. - Merge the source branch into target branch and push changes to GitLab + Merge the branch and push the changes to GitLab %pre.dark :preserve git checkout #{@merge_request.target_branch}