From 9e4e1afb4a7907f2a79d18fd9b5d03c9f6599ccf Mon Sep 17 00:00:00 2001 From: Clement Ho Date: Mon, 10 Jul 2017 14:54:58 -0500 Subject: MR branch link now links to tree instead of commits --- app/presenters/merge_request_presenter.rb | 2 +- changelogs/unreleased/mr-branch-link-use-tree.yml | 4 ++++ spec/presenters/merge_request_presenter_spec.rb | 13 +++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/mr-branch-link-use-tree.yml diff --git a/app/presenters/merge_request_presenter.rb b/app/presenters/merge_request_presenter.rb index 6ba1d3165e9..101568b66b7 100644 --- a/app/presenters/merge_request_presenter.rb +++ b/app/presenters/merge_request_presenter.rb @@ -94,7 +94,7 @@ class MergeRequestPresenter < Gitlab::View::Presenter::Delegated if source_branch_exists? namespace = link_to(namespace, project_path(source_project)) - branch = link_to(branch, project_commits_path(source_project, source_branch)) + branch = link_to(branch, project_tree_path(source_project, source_branch)) end if for_fork? diff --git a/changelogs/unreleased/mr-branch-link-use-tree.yml b/changelogs/unreleased/mr-branch-link-use-tree.yml new file mode 100644 index 00000000000..f4c4d9f5082 --- /dev/null +++ b/changelogs/unreleased/mr-branch-link-use-tree.yml @@ -0,0 +1,4 @@ +--- +title: MR branch link now links to tree instead of commits +merge_request: +author: diff --git a/spec/presenters/merge_request_presenter_spec.rb b/spec/presenters/merge_request_presenter_spec.rb index f5a14b1d04d..40fe9e3c004 100644 --- a/spec/presenters/merge_request_presenter_spec.rb +++ b/spec/presenters/merge_request_presenter_spec.rb @@ -363,4 +363,17 @@ describe MergeRequestPresenter do end end end + + describe '#source_branch_with_namespace_link' do + subject do + described_class.new(resource, current_user: user).source_branch_with_namespace_link + end + + it 'returns link' do + allow(resource).to receive(:source_branch_exists?) { true } + + is_expected + .to eq("#{resource.source_branch}") + end + end end -- cgit v1.2.1 From 09193a4fe18044a61021afef1282ec60b81810b1 Mon Sep 17 00:00:00 2001 From: Clement Ho Date: Tue, 11 Jul 2017 09:48:59 -0500 Subject: Convert target branch link to use tree --- .../javascripts/vue_merge_request_widget/stores/mr_widget_store.js | 2 +- app/presenters/merge_request_presenter.rb | 4 ++-- app/serializers/merge_request_entity.rb | 4 ++-- spec/fixtures/api/schemas/entities/merge_request.json | 2 +- spec/presenters/merge_request_presenter_spec.rb | 6 +++--- spec/serializers/merge_request_entity_spec.rb | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js b/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js index 69bc1436284..d4ef5972ce0 100644 --- a/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js +++ b/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js @@ -47,7 +47,7 @@ export default class MergeRequestStore { this.sourceBranchPath = data.source_branch_path; this.sourceBranchLink = data.source_branch_with_namespace_link; this.mergeError = data.merge_error; - this.targetBranchPath = data.target_branch_commits_path; + this.targetBranchPath = data.target_branch_tree_path; this.conflictResolutionPath = data.conflict_resolution_path; this.cancelAutoMergePath = data.cancel_merge_when_pipeline_succeeds_path; this.removeWIPPath = data.remove_wip_path; diff --git a/app/presenters/merge_request_presenter.rb b/app/presenters/merge_request_presenter.rb index 101568b66b7..4084a982071 100644 --- a/app/presenters/merge_request_presenter.rb +++ b/app/presenters/merge_request_presenter.rb @@ -76,9 +76,9 @@ class MergeRequestPresenter < Gitlab::View::Presenter::Delegated end end - def target_branch_commits_path + def target_branch_tree_path if target_branch_exists? - project_commits_path(project, target_branch) + project_tree_path(project, target_branch) end end diff --git a/app/serializers/merge_request_entity.rb b/app/serializers/merge_request_entity.rb index 7ec2dbd0efe..fb6709699a7 100644 --- a/app/serializers/merge_request_entity.rb +++ b/app/serializers/merge_request_entity.rb @@ -93,8 +93,8 @@ class MergeRequestEntity < IssuableEntity # Paths # - expose :target_branch_commits_path do |merge_request| - presenter(merge_request).target_branch_commits_path + expose :target_branch_tree_path do |merge_request| + presenter(merge_request).target_branch_tree_path end expose :new_blob_path do |merge_request| diff --git a/spec/fixtures/api/schemas/entities/merge_request.json b/spec/fixtures/api/schemas/entities/merge_request.json index b6a59a6cc47..b6cda963ffa 100644 --- a/spec/fixtures/api/schemas/entities/merge_request.json +++ b/spec/fixtures/api/schemas/entities/merge_request.json @@ -74,7 +74,7 @@ }, "additionalProperties": false }, - "target_branch_commits_path": { "type": "string" }, + "target_branch_tree_path": { "type": "string" }, "source_branch_path": { "type": "string" }, "conflict_resolution_path": { "type": ["string", "null"] }, "cancel_merge_when_pipeline_succeeds_path": { "type": "string" }, diff --git a/spec/presenters/merge_request_presenter_spec.rb b/spec/presenters/merge_request_presenter_spec.rb index 40fe9e3c004..ef12611cff8 100644 --- a/spec/presenters/merge_request_presenter_spec.rb +++ b/spec/presenters/merge_request_presenter_spec.rb @@ -317,10 +317,10 @@ describe MergeRequestPresenter do end end - describe '#target_branch_commits_path' do + describe '#target_branch_tree_path' do subject do described_class.new(resource, current_user: user) - .target_branch_commits_path + .target_branch_tree_path end context 'when target branch exists' do @@ -328,7 +328,7 @@ describe MergeRequestPresenter do allow(resource).to receive(:target_branch_exists?) { true } is_expected - .to eq("/#{resource.target_project.full_path}/commits/#{resource.target_branch}") + .to eq("/#{resource.target_project.full_path}/tree/#{resource.target_branch}") end end diff --git a/spec/serializers/merge_request_entity_spec.rb b/spec/serializers/merge_request_entity_spec.rb index d38433c2365..0c1db82aa55 100644 --- a/spec/serializers/merge_request_entity_spec.rb +++ b/spec/serializers/merge_request_entity_spec.rb @@ -46,7 +46,7 @@ describe MergeRequestEntity do :conflict_resolution_path, :cancel_merge_when_pipeline_succeeds_path, :create_issue_to_resolve_discussions_path, - :source_branch_path, :target_branch_commits_path, + :source_branch_path, :target_branch_tree_path, :commits_count) end -- cgit v1.2.1 From 6eeb6384349b19ec21b667a080893e4facd9b591 Mon Sep 17 00:00:00 2001 From: Clement Ho Date: Tue, 11 Jul 2017 11:49:22 -0500 Subject: Make commits behind text a link to the target branch commits page --- .../components/mr_widget_header.js | 4 ++-- .../stores/mr_widget_store.js | 3 ++- app/presenters/merge_request_presenter.rb | 6 ++++++ app/serializers/merge_request_entity.rb | 4 ++++ .../api/schemas/entities/merge_request.json | 1 + .../components/mr_widget_header_spec.js | 7 +++++-- spec/presenters/merge_request_presenter_spec.rb | 24 ++++++++++++++++++++++ spec/serializers/merge_request_entity_spec.rb | 4 ++-- 8 files changed, 46 insertions(+), 7 deletions(-) diff --git a/app/assets/javascripts/vue_merge_request_widget/components/mr_widget_header.js b/app/assets/javascripts/vue_merge_request_widget/components/mr_widget_header.js index f8b3fb748ae..8430548903c 100644 --- a/app/assets/javascripts/vue_merge_request_widget/components/mr_widget_header.js +++ b/app/assets/javascripts/vue_merge_request_widget/components/mr_widget_header.js @@ -92,13 +92,13 @@ export default { :class="{'label-truncated has-tooltip': isBranchTitleLong(mr.targetBranch)}" :title="isBranchTitleLong(mr.targetBranch) ? mr.targetBranch : ''" data-placement="bottom"> - {{mr.targetBranch}} + {{mr.targetBranch}} - ({{mr.divergedCommitsCount}} {{commitsText}} behind) + ({{mr.divergedCommitsCount}} {{commitsText}} behind) diff --git a/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js b/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js index d4ef5972ce0..72a13108404 100644 --- a/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js +++ b/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js @@ -47,7 +47,8 @@ export default class MergeRequestStore { this.sourceBranchPath = data.source_branch_path; this.sourceBranchLink = data.source_branch_with_namespace_link; this.mergeError = data.merge_error; - this.targetBranchPath = data.target_branch_tree_path; + this.targetBranchPath = data.target_branch_commits_path; + this.targetBranchTreePath = data.target_branch_tree_path; this.conflictResolutionPath = data.conflict_resolution_path; this.cancelAutoMergePath = data.cancel_merge_when_pipeline_succeeds_path; this.removeWIPPath = data.remove_wip_path; diff --git a/app/presenters/merge_request_presenter.rb b/app/presenters/merge_request_presenter.rb index 4084a982071..2df84e58575 100644 --- a/app/presenters/merge_request_presenter.rb +++ b/app/presenters/merge_request_presenter.rb @@ -82,6 +82,12 @@ class MergeRequestPresenter < Gitlab::View::Presenter::Delegated end end + def target_branch_commits_path + if target_branch_exists? + project_commits_path(project, target_branch) + end + end + def source_branch_path if source_branch_exists? project_branch_path(source_project, source_branch) diff --git a/app/serializers/merge_request_entity.rb b/app/serializers/merge_request_entity.rb index fb6709699a7..7f17f2bf604 100644 --- a/app/serializers/merge_request_entity.rb +++ b/app/serializers/merge_request_entity.rb @@ -93,6 +93,10 @@ class MergeRequestEntity < IssuableEntity # Paths # + expose :target_branch_commits_path do |merge_request| + presenter(merge_request).target_branch_commits_path + end + expose :target_branch_tree_path do |merge_request| presenter(merge_request).target_branch_tree_path end diff --git a/spec/fixtures/api/schemas/entities/merge_request.json b/spec/fixtures/api/schemas/entities/merge_request.json index b6cda963ffa..7ffa82fc4bd 100644 --- a/spec/fixtures/api/schemas/entities/merge_request.json +++ b/spec/fixtures/api/schemas/entities/merge_request.json @@ -74,6 +74,7 @@ }, "additionalProperties": false }, + "target_branch_commits_path": { "type": "string" }, "target_branch_tree_path": { "type": "string" }, "source_branch_path": { "type": "string" }, "conflict_resolution_path": { "type": ["string", "null"] }, diff --git a/spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js b/spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js index 7f3eea7d2e5..06f89fabf42 100644 --- a/spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js +++ b/spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js @@ -54,6 +54,7 @@ describe('MRWidgetHeader', () => { sourceBranch: 'mr-widget-refactor', sourceBranchLink: `mr-widget-refactor`, targetBranchPath: 'foo/bar/commits-path', + targetBranchTreePath: 'foo/bar/tree/path', targetBranch: 'master', isOpen: true, emailPatchesPath: '/mr/email-patches', @@ -69,12 +70,14 @@ describe('MRWidgetHeader', () => { expect(el.classList.contains('mr-source-target')).toBeTruthy(); const sourceBranchLink = el.querySelectorAll('.label-branch')[0]; const targetBranchLink = el.querySelectorAll('.label-branch')[1]; + const commitsCount = el.querySelector('.diverged-commits-count'); expect(sourceBranchLink.textContent).toContain(mr.sourceBranch); expect(targetBranchLink.textContent).toContain(mr.targetBranch); expect(sourceBranchLink.querySelector('a').getAttribute('href')).toEqual(sourceBranchPath); - expect(targetBranchLink.querySelector('a').getAttribute('href')).toEqual(mr.targetBranchPath); - expect(el.querySelector('.diverged-commits-count').textContent).toContain('12 commits behind'); + expect(targetBranchLink.querySelector('a').getAttribute('href')).toEqual(mr.targetBranchTreePath); + expect(commitsCount.textContent).toContain('12 commits behind'); + expect(commitsCount.querySelector('a').getAttribute('href')).toEqual(mr.targetBranchPath); expect(el.textContent).toContain('Check out branch'); expect(el.querySelectorAll('.dropdown li a')[0].getAttribute('href')).toEqual(mr.emailPatchesPath); diff --git a/spec/presenters/merge_request_presenter_spec.rb b/spec/presenters/merge_request_presenter_spec.rb index ef12611cff8..ca6c67a6235 100644 --- a/spec/presenters/merge_request_presenter_spec.rb +++ b/spec/presenters/merge_request_presenter_spec.rb @@ -317,6 +317,30 @@ describe MergeRequestPresenter do end end + describe '#target_branch_commits_path' do + subject do + described_class.new(resource, current_user: user) + .target_branch_commits_path + end + + context 'when target branch exists' do + it 'returns path' do + allow(resource).to receive(:target_branch_exists?) { true } + + is_expected + .to eq("/#{resource.target_project.full_path}/commits/#{resource.target_branch}") + end + end + + context 'when target branch does not exists' do + it 'returns nil' do + allow(resource).to receive(:target_branch_exists?) { false } + + is_expected.to be_nil + end + end + end + describe '#target_branch_tree_path' do subject do described_class.new(resource, current_user: user) diff --git a/spec/serializers/merge_request_entity_spec.rb b/spec/serializers/merge_request_entity_spec.rb index 0c1db82aa55..b3d58b2636f 100644 --- a/spec/serializers/merge_request_entity_spec.rb +++ b/spec/serializers/merge_request_entity_spec.rb @@ -46,8 +46,8 @@ describe MergeRequestEntity do :conflict_resolution_path, :cancel_merge_when_pipeline_succeeds_path, :create_issue_to_resolve_discussions_path, - :source_branch_path, :target_branch_tree_path, - :commits_count) + :source_branch_path, :target_branch_commits_path, + :target_branch_tree_path, :commits_count) end it 'has email_patches_path' do -- cgit v1.2.1 From 8119c444b319bcf4a8305437a648ec630969d251 Mon Sep 17 00:00:00 2001 From: Clement Ho Date: Tue, 11 Jul 2017 16:06:38 -0500 Subject: Add namespace for Blob --- lib/gitlab/git/repository.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/gitlab/git/repository.rb b/lib/gitlab/git/repository.rb index e51966313d4..26581a3cc1b 100644 --- a/lib/gitlab/git/repository.rb +++ b/lib/gitlab/git/repository.rb @@ -930,7 +930,7 @@ module Gitlab return unless commit_object && commit_object.type == :COMMIT - gitmodules = gitaly_commit_client.tree_entry(ref, '.gitmodules', Blob::MAX_DATA_DISPLAY_SIZE) + gitmodules = gitaly_commit_client.tree_entry(ref, '.gitmodules', Gitlab::Git::Blob::MAX_DATA_DISPLAY_SIZE) found_module = GitmodulesParser.new(gitmodules.data).parse[path] found_module && found_module['url'] -- cgit v1.2.1 From 531157f5b4e35393cb1952365a534dbab6252950 Mon Sep 17 00:00:00 2001 From: Clement Ho Date: Wed, 12 Jul 2017 10:02:53 -0500 Subject: Fix spec name grammer --- spec/presenters/merge_request_presenter_spec.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spec/presenters/merge_request_presenter_spec.rb b/spec/presenters/merge_request_presenter_spec.rb index ca6c67a6235..c1a0313b13c 100644 --- a/spec/presenters/merge_request_presenter_spec.rb +++ b/spec/presenters/merge_request_presenter_spec.rb @@ -332,7 +332,7 @@ describe MergeRequestPresenter do end end - context 'when target branch does not exists' do + context 'when target branch does not exist' do it 'returns nil' do allow(resource).to receive(:target_branch_exists?) { false } @@ -356,7 +356,7 @@ describe MergeRequestPresenter do end end - context 'when target branch does not exists' do + context 'when target branch does not exist' do it 'returns nil' do allow(resource).to receive(:target_branch_exists?) { false } @@ -379,7 +379,7 @@ describe MergeRequestPresenter do end end - context 'when source branch does not exists' do + context 'when source branch does not exist' do it 'returns nil' do allow(resource).to receive(:source_branch_exists?) { false } -- cgit v1.2.1