Commit 5f8255ac67e26d8d7dc98cff37ecae5eab4ab3cf

Authored by gitlabhq
1 parent 153f6cd8

Fixed: invalid browse code for commit. Perfomance test added

app/controllers/projects_controller.rb
@@ -34,6 +34,8 @@ class ProjectsController < ApplicationController @@ -34,6 +34,8 @@ class ProjectsController < ApplicationController
34 def tree 34 def tree
35 load_refs # load @branch, @tag & @ref 35 load_refs # load @branch, @tag & @ref
36 36
  37 +
  38 +
37 @repo = project.repo 39 @repo = project.repo
38 40
39 if params[:commit_id] 41 if params[:commit_id]
app/views/projects/_tree_file.html.haml
@@ -3,7 +3,6 @@ @@ -3,7 +3,6 @@
3 .view_file_header 3 .view_file_header
4 %strong 4 %strong
5 = name 5 = name
6 - -#= file.mime_type  
7 = link_to "raw", blob_project_path(@project, :commit_id => @commit.id, :path => params[:path] ), :class => "right", :target => "_blank" 6 = link_to "raw", blob_project_path(@project, :commit_id => @commit.id, :path => params[:path] ), :class => "right", :target => "_blank"
8 = link_to "history", project_commits_path(@project, :path => params[:path]), :class => "right", :style => "margin-right:10px;" 7 = link_to "history", project_commits_path(@project, :path => params[:path]), :class => "right", :style => "margin-right:10px;"
9 %br/ 8 %br/
app/views/projects/_tree_item.html.haml
1 - file = params[:path] ? File.join(params[:path], content.name) : content.name 1 - file = params[:path] ? File.join(params[:path], content.name) : content.name
2 -- content_commit = @project.repo.log(@branch, file, :max_count => 1).last 2 +- content_commit = @project.repo.log(@commit.id, file, :max_count => 1).last
3 - return unless content_commit 3 - return unless content_commit
4 %tr{ :class => "tree-item", :url => tree_file_project_path(@project, @commit.id, file) } 4 %tr{ :class => "tree-item", :url => tree_file_project_path(@project, @commit.id, file) }
5 %td.tree-item-file-name 5 %td.tree-item-file-name
spec/requests/projects_tree_perfomance_spec.rb 0 → 100644
@@ -0,0 +1,37 @@ @@ -0,0 +1,37 @@
  1 +require 'spec_helper'
  2 +require 'benchmark'
  3 +
  4 +describe "Projects" do
  5 + before { login_as :user }
  6 +
  7 + describe "GET /projects/tree" do
  8 + describe "head" do
  9 + before do
  10 + @project = Factory :project
  11 + @project.add_access(@user, :read)
  12 +
  13 + end
  14 +
  15 + it "should be fast" do
  16 + time = Benchmark.realtime do
  17 + visit tree_project_path(@project)
  18 + end
  19 + (time < 1.0).should be_true
  20 + end
  21 + end
  22 +
  23 + describe ValidCommit::ID do
  24 + before do
  25 + @project = Factory :project
  26 + @project.add_access(@user, :read)
  27 + end
  28 +
  29 + it "should be fast" do
  30 + time = Benchmark.realtime do
  31 + visit tree_project_path(@project, :commit_id => ValidCommit::ID)
  32 + end
  33 + (time < 1.0).should be_true
  34 + end
  35 + end
  36 + end
  37 +end