summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-04-27 14:23:01 +0000
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-04-27 14:23:01 +0000
commit9f443f42578f8f995415f3d0b9aa9ee8aebeff0b (patch)
tree2b1f46122220e101ada6b342ac70be7d9bca03b4
parentbd606e3b6211e4da0ccb57ed4fcc833f135623e1 (diff)
parent9a2e3d3d8196afefe32b099162b17f7441de8fb1 (diff)
downloadgitlab-ce-9f443f42578f8f995415f3d0b9aa9ee8aebeff0b.tar.gz
Merge branch 'fix-relative-submodule-links-with-personal-projects' into 'master'
Fix broken file browsing with relative submodule in personal projects Git submodules with relative links work fine for projects in groups but not in personal projects. This patch fixes this issue. To reproduce the problem, go here: https://gitlab.com/andrewwu.tw/submodule-test/tree/master Closes https://github.com/gitlabhq/gitlabhq/issues/7554 See merge request !565
-rw-r--r--CHANGELOG1
-rw-r--r--app/helpers/submodule_helper.rb2
-rw-r--r--spec/helpers/submodule_helper_spec.rb15
3 files changed, 13 insertions, 5 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 97b8c182c42..97a469513c8 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -8,6 +8,7 @@ v 7.11.0 (unreleased)
- Redirect to sign in page after signing out.
- Fix "Hello @username." references not working by no longer allowing usernames to end in period.
-
+ - Fix broken file browsing with relative submodule in personal projects (Stan Hu)
- Add "Reply quoting selected text" shortcut key (`r`)
- Fix bug causing `@whatever` inside an issue's first code block to be picked up as a user mention.
- Fix bug causing `@whatever` inside an inline code snippet (backtick-style) to be picked up as a user mention.
diff --git a/app/helpers/submodule_helper.rb b/app/helpers/submodule_helper.rb
index 9954617c762..e13d4eaf101 100644
--- a/app/helpers/submodule_helper.rb
+++ b/app/helpers/submodule_helper.rb
@@ -63,7 +63,7 @@ module SubmoduleHelper
namespace = components.pop.gsub(/^\.\.$/, '')
if namespace.empty?
- namespace = @project.group.path
+ namespace = @project.namespace.name
end
[
diff --git a/spec/helpers/submodule_helper_spec.rb b/spec/helpers/submodule_helper_spec.rb
index e99c3f5bc11..e98b75afabc 100644
--- a/spec/helpers/submodule_helper_spec.rb
+++ b/spec/helpers/submodule_helper_spec.rb
@@ -117,34 +117,41 @@ describe SubmoduleHelper do
context 'submodules with relative links' do
let(:group) { create(:group) }
let(:project) { create(:project, group: group) }
+ let(:commit_id) { sample_commit[:id] }
before do
self.instance_variable_set(:@project, project)
end
it 'one level down' do
- commit_id = sample_commit[:id]
result = relative_self_links('../test.git', commit_id)
expect(result).to eq(["/#{group.path}/test", "/#{group.path}/test/tree/#{commit_id}"])
end
it 'two levels down' do
- commit_id = sample_commit[:id]
result = relative_self_links('../../test.git', commit_id)
expect(result).to eq(["/#{group.path}/test", "/#{group.path}/test/tree/#{commit_id}"])
end
it 'one level down with namespace and repo' do
- commit_id = sample_commit[:id]
result = relative_self_links('../foobar/test.git', commit_id)
expect(result).to eq(["/foobar/test", "/foobar/test/tree/#{commit_id}"])
end
it 'two levels down with namespace and repo' do
- commit_id = sample_commit[:id]
result = relative_self_links('../foobar/baz/test.git', commit_id)
expect(result).to eq(["/baz/test", "/baz/test/tree/#{commit_id}"])
end
+
+ context 'personal project' do
+ let(:user) { create(:user) }
+ let(:project) { create(:project, namespace: user.namespace) }
+
+ it 'one level down with personal project' do
+ result = relative_self_links('../test.git', commit_id)
+ expect(result).to eq(["/#{user.username}/test", "/#{user.username}/test/tree/#{commit_id}"])
+ end
+ end
end
end