mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-11 13:46:11 +10:00
Fix 404 error in files view after deleting the last file in a repository
Closes #1362
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
Please view this file on the master branch, on stable branches it's out of date.
|
||||
|
||||
v 7.14.0 (unreleased)
|
||||
- Fix 404 error in files view after deleting the last file in a repository (Stan Hu)
|
||||
- Remove repository graph log to fix slow cache updates after push event (Stan Hu)
|
||||
- Fix label read access for unauthenticated users (Daniel Gerhardt)
|
||||
- Fix access to disabled features for unauthenticated users (Daniel Gerhardt)
|
||||
|
||||
@@ -7,13 +7,15 @@ class Projects::TreeController < Projects::ApplicationController
|
||||
before_action :authorize_download_code!
|
||||
|
||||
def show
|
||||
return not_found! unless @repository.commit(@ref)
|
||||
|
||||
if tree.entries.empty?
|
||||
if @repository.blob_at(@commit.id, @path)
|
||||
redirect_to(
|
||||
namespace_project_blob_path(@project.namespace, @project,
|
||||
File.join(@ref, @path))
|
||||
) and return
|
||||
else
|
||||
elsif @path.present?
|
||||
return not_found!
|
||||
end
|
||||
end
|
||||
|
||||
+26
-3
@@ -8,9 +8,6 @@ describe Projects::TreeController do
|
||||
sign_in(user)
|
||||
|
||||
project.team << [user, :master]
|
||||
|
||||
allow(project).to receive(:branches).and_return(['master', 'foo/bar/baz'])
|
||||
allow(project).to receive(:tags).and_return(['v1.0.0', 'v2.0.0'])
|
||||
controller.instance_variable_set(:@project, project)
|
||||
end
|
||||
|
||||
@@ -44,6 +41,32 @@ describe Projects::TreeController do
|
||||
let(:id) { 'invalid-branch/encoding/' }
|
||||
it { is_expected.to respond_with(:not_found) }
|
||||
end
|
||||
|
||||
context "valid empty branch, invalid path" do
|
||||
let(:id) { 'empty-branch/invalid-path/' }
|
||||
it { is_expected.to respond_with(:not_found) }
|
||||
end
|
||||
|
||||
context "valid empty branch" do
|
||||
let(:id) { 'empty-branch' }
|
||||
it { is_expected.to respond_with(:success) }
|
||||
end
|
||||
|
||||
context "invalid SHA commit ID" do
|
||||
let(:id) { 'ff39438/.gitignore' }
|
||||
it { is_expected.to respond_with(:not_found) }
|
||||
end
|
||||
|
||||
context "valid SHA commit ID" do
|
||||
let(:id) { '6d39438' }
|
||||
it { is_expected.to respond_with(:success) }
|
||||
end
|
||||
|
||||
context "valid SHA commit ID with path" do
|
||||
let(:id) { '6d39438/.gitignore' }
|
||||
it { expect(response.status).to eq(302) }
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe 'GET show with blob path' do
|
||||
@@ -13,11 +13,18 @@ describe API::API, api: true do
|
||||
let!(:branch_sha) { '0b4bc9a49b562e85de7cc9e834518ea6828729b9' }
|
||||
|
||||
describe "GET /projects/:id/repository/branches" do
|
||||
before do
|
||||
# Ensure that repository.branch_names is cleared from the cache at start to ensure
|
||||
# the list matches reality
|
||||
Rails.cache.clear
|
||||
end
|
||||
|
||||
it "should return an array of project branches" do
|
||||
get api("/projects/#{project.id}/repository/branches", user)
|
||||
expect(response.status).to eq(200)
|
||||
expect(json_response).to be_an Array
|
||||
expect(json_response.first['name']).to eq(project.repository.branch_names.first)
|
||||
branch_names = json_response.map { |x| x['name'] }
|
||||
expect(branch_names).to match_array(project.repository.branch_names)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ module TestEnv
|
||||
|
||||
# When developing the seed repository, comment out the branch you will modify.
|
||||
BRANCH_SHA = {
|
||||
'empty-branch' => '7efb185',
|
||||
'flatten-dir' => 'e56497b',
|
||||
'feature' => '0b4bc9a',
|
||||
'feature_conflict' => 'bb5206f',
|
||||
@@ -14,9 +15,13 @@ module TestEnv
|
||||
'master' => '5937ac0'
|
||||
}
|
||||
|
||||
FORKED_BRANCH_SHA = BRANCH_SHA.merge({
|
||||
'add-submodule-version-bump' => '3f547c08'
|
||||
})
|
||||
# gitlab-test-fork is a fork of gitlab-fork, but we don't necessarily
|
||||
# need to keep all the branches in sync.
|
||||
# We currently only need a subset of the branches
|
||||
FORKED_BRANCH_SHA = {
|
||||
'add-submodule-version-bump' => '3f547c08',
|
||||
'master' => '5937ac0'
|
||||
}
|
||||
|
||||
# Test environment
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user