Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Jérome Perrin
gitlab-ce
Commits
4cbfe942
Commit
4cbfe942
authored
Oct 03, 2012
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1613 from tsigo/performance
Improve performance of Commits#show
parents
dc53a4f7
5e3be9cd
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
53 additions
and
12 deletions
+53
-12
app/decorators/commit_decorator.rb
app/decorators/commit_decorator.rb
+13
-9
app/models/commit.rb
app/models/commit.rb
+1
-1
app/views/commits/_head.html.haml
app/views/commits/_head.html.haml
+2
-2
spec/models/commit_spec.rb
spec/models/commit_spec.rb
+37
-0
No files found.
app/decorators/commit_decorator.rb
View file @
4cbfe942
...
@@ -16,13 +16,15 @@ class CommitDecorator < ApplicationDecorator
...
@@ -16,13 +16,15 @@ class CommitDecorator < ApplicationDecorator
# In case this first line is longer than 80 characters, it is cut off
# In case this first line is longer than 80 characters, it is cut off
# after 70 characters and ellipses (`&hellp;`) are appended.
# after 70 characters and ellipses (`&hellp;`) are appended.
def
title
def
title
return
no_commit_message
if
safe_message
.
blank?
title
=
safe_message
title_end
=
safe_message
.
index
(
/\n/
)
return
no_commit_message
if
title
.
blank?
if
(
!
title_end
&&
safe_message
.
length
>
80
)
||
(
title_end
&&
title_end
>
80
)
safe_message
[
0
..
69
]
<<
"…"
.
html_safe
title_end
=
title
.
index
(
/\n/
)
if
(
!
title_end
&&
title
.
length
>
80
)
||
(
title_end
&&
title_end
>
80
)
title
[
0
..
69
]
<<
"…"
.
html_safe
else
else
safe_messag
e
.
split
(
/\n/
,
2
).
first
titl
e
.
split
(
/\n/
,
2
).
first
end
end
end
end
...
@@ -30,11 +32,13 @@ class CommitDecorator < ApplicationDecorator
...
@@ -30,11 +32,13 @@ class CommitDecorator < ApplicationDecorator
#
#
# cut off, ellipses (`&hellp;`) are prepended to the commit message.
# cut off, ellipses (`&hellp;`) are prepended to the commit message.
def
description
def
description
title_end
=
safe_message
.
index
(
/\n/
)
description
=
safe_message
if
(
!
title_end
&&
safe_message
.
length
>
80
)
||
(
title_end
&&
title_end
>
80
)
"…"
.
html_safe
<<
safe_message
[
70
..-
1
]
title_end
=
description
.
index
(
/\n/
)
if
(
!
title_end
&&
description
.
length
>
80
)
||
(
title_end
&&
title_end
>
80
)
"…"
.
html_safe
<<
description
[
70
..-
1
]
else
else
safe_message
.
split
(
/\n/
,
2
)[
1
].
try
(
:chomp
)
description
.
split
(
/\n/
,
2
)[
1
].
try
(
:chomp
)
end
end
end
end
...
...
app/models/commit.rb
View file @
4cbfe942
...
@@ -107,7 +107,7 @@ class Commit
...
@@ -107,7 +107,7 @@ class Commit
end
end
def
safe_message
def
safe_message
utf8
message
@safe_message
||=
utf8
message
end
end
def
created_at
def
created_at
...
...
app/views/commits/_head.html.haml
View file @
4cbfe942
...
@@ -9,12 +9,12 @@
...
@@ -9,12 +9,12 @@
=
nav_link
(
html_options:
{
class:
branches_tab_class
})
do
=
nav_link
(
html_options:
{
class:
branches_tab_class
})
do
=
link_to
project_repository_path
(
@project
)
do
=
link_to
project_repository_path
(
@project
)
do
Branches
Branches
%span
.badge
=
@project
.
repo
.
branch_count
%span
.badge
=
@project
.
branches
.
length
=
nav_link
(
controller: :repositories
,
action: :tags
)
do
=
nav_link
(
controller: :repositories
,
action: :tags
)
do
=
link_to
tags_project_repository_path
(
@project
)
do
=
link_to
tags_project_repository_path
(
@project
)
do
Tags
Tags
%span
.badge
=
@project
.
repo
.
tag_count
%span
.badge
=
@project
.
tags
.
length
-
if
current_controller?
(
:commits
)
&&
current_user
.
private_token
-
if
current_controller?
(
:commits
)
&&
current_user
.
private_token
%li
.right
%li
.right
...
...
spec/models/commit_spec.rb
0 → 100644
View file @
4cbfe942
require
'spec_helper'
describe
Commit
do
let
(
:commit
)
{
create
(
:project
).
commit
}
describe
CommitDecorator
do
let
(
:decorator
)
{
CommitDecorator
.
new
(
commit
)
}
describe
'#title'
do
it
"returns no_commit_message when safe_message is blank"
do
decorator
.
stub
(
:safe_message
).
and_return
(
''
)
decorator
.
title
.
should
==
"--no commit message"
end
it
"truncates a message without a newline at 70 characters"
do
message
=
commit
.
safe_message
*
10
decorator
.
stub
(
:safe_message
).
and_return
(
message
)
decorator
.
title
.
should
==
"
#{
message
[
0
..
69
]
}
…"
end
it
"truncates a message with a newline before 80 characters at the newline"
do
message
=
commit
.
safe_message
.
split
(
" "
).
first
decorator
.
stub
(
:safe_message
).
and_return
(
message
+
"
\n
"
+
message
)
decorator
.
title
.
should
==
message
end
it
"truncates a message with a newline after 80 characters at 70 characters"
do
message
=
(
commit
.
safe_message
*
10
)
+
"
\n
"
decorator
.
stub
(
:safe_message
).
and_return
(
message
)
decorator
.
title
.
should
==
"
#{
message
[
0
..
69
]
}
…"
end
end
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment