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
Léo-Paul Géneau
gitlab-ce
Commits
c21ae07e
Commit
c21ae07e
authored
Jul 25, 2017
by
Alejandro Rodríguez
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactor Gitlab::Git::Commit to include a repository
parent
942bd5b4
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
64 additions
and
85 deletions
+64
-85
app/models/commit.rb
app/models/commit.rb
+2
-1
app/models/merge_request_diff.rb
app/models/merge_request_diff.rb
+1
-3
app/models/repository.rb
app/models/repository.rb
+2
-0
lib/gitlab/cycle_analytics/plan_event_fetcher.rb
lib/gitlab/cycle_analytics/plan_event_fetcher.rb
+1
-1
lib/gitlab/git/blame.rb
lib/gitlab/git/blame.rb
+1
-1
lib/gitlab/git/commit.rb
lib/gitlab/git/commit.rb
+10
-16
lib/gitlab/git/diff_collection.rb
lib/gitlab/git/diff_collection.rb
+1
-2
lib/gitlab/git/repository.rb
lib/gitlab/git/repository.rb
+1
-1
lib/gitlab/gitaly_client/commit.rb
lib/gitlab/gitaly_client/commit.rb
+0
-14
lib/gitlab/gitaly_client/commit_service.rb
lib/gitlab/gitaly_client/commit_service.rb
+3
-5
lib/gitlab/gitaly_client/ref_service.rb
lib/gitlab/gitaly_client/ref_service.rb
+3
-5
spec/lib/gitlab/git/commit_spec.rb
spec/lib/gitlab/git/commit_spec.rb
+26
-26
spec/lib/gitlab/git/repository_spec.rb
spec/lib/gitlab/git/repository_spec.rb
+12
-7
spec/lib/gitlab/gitaly_client/commit_service_spec.rb
spec/lib/gitlab/gitaly_client/commit_service_spec.rb
+1
-1
spec/models/commit_spec.rb
spec/models/commit_spec.rb
+0
-2
No files found.
app/models/commit.rb
View file @
c21ae07e
...
@@ -55,7 +55,8 @@ class Commit
...
@@ -55,7 +55,8 @@ class Commit
end
end
def
from_hash
(
hash
,
project
)
def
from_hash
(
hash
,
project
)
new
(
Gitlab
::
Git
::
Commit
.
new
(
hash
),
project
)
raw_commit
=
Gitlab
::
Git
::
Commit
.
new
(
project
.
repository
.
raw
,
hash
)
new
(
raw_commit
,
project
)
end
end
def
valid_hash?
(
key
)
def
valid_hash?
(
key
)
...
...
app/models/merge_request_diff.rb
View file @
c21ae07e
...
@@ -282,9 +282,7 @@ class MergeRequestDiff < ActiveRecord::Base
...
@@ -282,9 +282,7 @@ class MergeRequestDiff < ActiveRecord::Base
def
load_commits
def
load_commits
commits
=
st_commits
.
presence
||
merge_request_diff_commits
commits
=
st_commits
.
presence
||
merge_request_diff_commits
commits
.
map
do
|
commit
|
commits
.
map
{
|
commit
|
Commit
.
from_hash
(
commit
.
to_hash
,
project
)
}
Commit
.
new
(
Gitlab
::
Git
::
Commit
.
new
(
commit
.
to_hash
),
merge_request
.
source_project
)
end
end
end
def
save_diffs
def
save_diffs
...
...
app/models/repository.rb
View file @
c21ae07e
...
@@ -64,6 +64,8 @@ class Repository
...
@@ -64,6 +64,8 @@ class Repository
@raw_repository
||=
initialize_raw_repository
@raw_repository
||=
initialize_raw_repository
end
end
alias_method
:raw
,
:raw_repository
# Return absolute path to repository
# Return absolute path to repository
def
path_to_repo
def
path_to_repo
@path_to_repo
||=
File
.
expand_path
(
@path_to_repo
||=
File
.
expand_path
(
...
...
lib/gitlab/cycle_analytics/plan_event_fetcher.rb
View file @
c21ae07e
...
@@ -54,7 +54,7 @@ module Gitlab
...
@@ -54,7 +54,7 @@ module Gitlab
end
end
def
serialize_commit
(
event
,
commit
,
query
)
def
serialize_commit
(
event
,
commit
,
query
)
commit
=
Commit
.
new
(
Gitlab
::
Git
::
Commit
.
new
(
commit
.
to_hash
)
,
@project
)
commit
=
Commit
.
from_hash
(
commit
.
to_hash
,
@project
)
AnalyticsCommitSerializer
.
new
(
project:
@project
,
total_time:
event
[
'total_time'
]).
represent
(
commit
)
AnalyticsCommitSerializer
.
new
(
project:
@project
,
total_time:
event
[
'total_time'
]).
represent
(
commit
)
end
end
...
...
lib/gitlab/git/blame.rb
View file @
c21ae07e
...
@@ -16,7 +16,7 @@ module Gitlab
...
@@ -16,7 +16,7 @@ module Gitlab
def
each
def
each
@blames
.
each
do
|
blame
|
@blames
.
each
do
|
blame
|
yield
(
yield
(
Gitlab
::
Git
::
Commit
.
new
(
blame
.
commit
),
Gitlab
::
Git
::
Commit
.
new
(
@repo
,
blame
.
commit
),
blame
.
line
blame
.
line
)
)
end
end
...
...
lib/gitlab/git/commit.rb
View file @
c21ae07e
...
@@ -51,7 +51,7 @@ module Gitlab
...
@@ -51,7 +51,7 @@ module Gitlab
# Gitaly migration: https://gitlab.com/gitlab-org/gitaly/issues/321
# Gitaly migration: https://gitlab.com/gitlab-org/gitaly/issues/321
def
find
(
repo
,
commit_id
=
"HEAD"
)
def
find
(
repo
,
commit_id
=
"HEAD"
)
return
commit_id
if
commit_id
.
is_a?
(
Gitlab
::
Git
::
Commit
)
return
commit_id
if
commit_id
.
is_a?
(
Gitlab
::
Git
::
Commit
)
return
decorate
(
commit_id
)
if
commit_id
.
is_a?
(
Rugged
::
Commit
)
return
decorate
(
repo
,
commit_id
)
if
commit_id
.
is_a?
(
Rugged
::
Commit
)
obj
=
if
commit_id
.
is_a?
(
String
)
obj
=
if
commit_id
.
is_a?
(
String
)
repo
.
rev_parse_target
(
commit_id
)
repo
.
rev_parse_target
(
commit_id
)
...
@@ -61,7 +61,7 @@ module Gitlab
...
@@ -61,7 +61,7 @@ module Gitlab
return
nil
unless
obj
.
is_a?
(
Rugged
::
Commit
)
return
nil
unless
obj
.
is_a?
(
Rugged
::
Commit
)
decorate
(
obj
)
decorate
(
repo
,
obj
)
rescue
Rugged
::
ReferenceError
,
Rugged
::
InvalidError
,
Rugged
::
ObjectError
,
Gitlab
::
Git
::
Repository
::
NoRepository
rescue
Rugged
::
ReferenceError
,
Rugged
::
InvalidError
,
Rugged
::
ObjectError
,
Gitlab
::
Git
::
Repository
::
NoRepository
nil
nil
end
end
...
@@ -102,7 +102,7 @@ module Gitlab
...
@@ -102,7 +102,7 @@ module Gitlab
if
is_enabled
if
is_enabled
repo
.
gitaly_commit_client
.
between
(
base
,
head
)
repo
.
gitaly_commit_client
.
between
(
base
,
head
)
else
else
repo
.
rugged_commits_between
(
base
,
head
).
map
{
|
c
|
decorate
(
c
)
}
repo
.
rugged_commits_between
(
base
,
head
).
map
{
|
c
|
decorate
(
repo
,
c
)
}
end
end
end
end
rescue
Rugged
::
ReferenceError
rescue
Rugged
::
ReferenceError
...
@@ -169,7 +169,7 @@ module Gitlab
...
@@ -169,7 +169,7 @@ module Gitlab
offset
=
actual_options
[
:skip
]
offset
=
actual_options
[
:skip
]
limit
=
actual_options
[
:max_count
]
limit
=
actual_options
[
:max_count
]
walker
.
each
(
offset:
offset
,
limit:
limit
)
do
|
commit
|
walker
.
each
(
offset:
offset
,
limit:
limit
)
do
|
commit
|
commits
.
push
(
decorate
(
commit
))
commits
.
push
(
decorate
(
repo
,
commit
))
end
end
walker
.
reset
walker
.
reset
...
@@ -183,8 +183,8 @@ module Gitlab
...
@@ -183,8 +183,8 @@ module Gitlab
Gitlab
::
GitalyClient
::
CommitService
.
new
(
repo
).
find_all_commits
(
options
)
Gitlab
::
GitalyClient
::
CommitService
.
new
(
repo
).
find_all_commits
(
options
)
end
end
def
decorate
(
commit
,
ref
=
nil
)
def
decorate
(
repository
,
commit
,
ref
=
nil
)
Gitlab
::
Git
::
Commit
.
new
(
commit
,
ref
)
Gitlab
::
Git
::
Commit
.
new
(
repository
,
commit
,
ref
)
end
end
# Returns a diff object for the changes introduced by +rugged_commit+.
# Returns a diff object for the changes introduced by +rugged_commit+.
...
@@ -221,7 +221,7 @@ module Gitlab
...
@@ -221,7 +221,7 @@ module Gitlab
end
end
end
end
def
initialize
(
raw_commit
,
head
=
nil
)
def
initialize
(
r
epository
,
r
aw_commit
,
head
=
nil
)
raise
"Nil as raw commit passed"
unless
raw_commit
raise
"Nil as raw commit passed"
unless
raw_commit
case
raw_commit
case
raw_commit
...
@@ -229,12 +229,13 @@ module Gitlab
...
@@ -229,12 +229,13 @@ module Gitlab
init_from_hash
(
raw_commit
)
init_from_hash
(
raw_commit
)
when
Rugged
::
Commit
when
Rugged
::
Commit
init_from_rugged
(
raw_commit
)
init_from_rugged
(
raw_commit
)
when
Git
lab
::
GitalyClient
::
Commit
when
Git
aly
::
Git
Commit
init_from_gitaly
(
raw_commit
)
init_from_gitaly
(
raw_commit
)
else
else
raise
"Invalid raw commit type:
#{
raw_commit
.
class
}
"
raise
"Invalid raw commit type:
#{
raw_commit
.
class
}
"
end
end
@repository
=
repository
@head
=
head
@head
=
head
end
end
...
@@ -309,14 +310,7 @@ module Gitlab
...
@@ -309,14 +310,7 @@ module Gitlab
end
end
def
parents
def
parents
case
raw_commit
parent_ids
.
map
{
|
oid
|
self
.
class
.
find
(
@repository
,
oid
)
}.
compact
when
Rugged
::
Commit
raw_commit
.
parents
.
map
{
|
c
|
Gitlab
::
Git
::
Commit
.
new
(
c
)
}
when
Gitlab
::
GitalyClient
::
Commit
parent_ids
.
map
{
|
oid
|
self
.
class
.
find
(
raw_commit
.
repository
,
oid
)
}.
compact
else
raise
NotImplementedError
,
"commit source doesn't support #parents"
end
end
end
# Get the gpg signature of this commit.
# Get the gpg signature of this commit.
...
...
lib/gitlab/git/diff_collection.rb
View file @
c21ae07e
...
@@ -28,7 +28,6 @@ module Gitlab
...
@@ -28,7 +28,6 @@ module Gitlab
@limits
=
self
.
class
.
collection_limits
(
options
)
@limits
=
self
.
class
.
collection_limits
(
options
)
@enforce_limits
=
!!
options
.
fetch
(
:limits
,
true
)
@enforce_limits
=
!!
options
.
fetch
(
:limits
,
true
)
@expanded
=
!!
options
.
fetch
(
:expanded
,
true
)
@expanded
=
!!
options
.
fetch
(
:expanded
,
true
)
@from_gitaly
=
options
.
fetch
(
:from_gitaly
,
false
)
@line_count
=
0
@line_count
=
0
@byte_count
=
0
@byte_count
=
0
...
@@ -44,7 +43,7 @@ module Gitlab
...
@@ -44,7 +43,7 @@ module Gitlab
return
if
@iterator
.
nil?
return
if
@iterator
.
nil?
Gitlab
::
GitalyClient
.
migrate
(
:commit_raw_diffs
)
do
|
is_enabled
|
Gitlab
::
GitalyClient
.
migrate
(
:commit_raw_diffs
)
do
|
is_enabled
|
if
is_enabled
&&
@
from_gitaly
if
is_enabled
&&
@
iterator
.
is_a?
(
Gitlab
::
GitalyClient
::
DiffStitcher
)
each_gitaly_patch
(
&
block
)
each_gitaly_patch
(
&
block
)
else
else
each_rugged_patch
(
&
block
)
each_rugged_patch
(
&
block
)
...
...
lib/gitlab/git/repository.rb
View file @
c21ae07e
...
@@ -314,7 +314,7 @@ module Gitlab
...
@@ -314,7 +314,7 @@ module Gitlab
options
[
:limit
]
||=
0
options
[
:limit
]
||=
0
options
[
:offset
]
||=
0
options
[
:offset
]
||=
0
raw_log
(
options
).
map
{
|
c
|
Commit
.
decorate
(
c
)
}
raw_log
(
options
).
map
{
|
c
|
Commit
.
decorate
(
self
,
c
)
}
end
end
def
count_commits
(
options
)
def
count_commits
(
options
)
...
...
lib/gitlab/gitaly_client/commit.rb
deleted
100644 → 0
View file @
942bd5b4
module
Gitlab
module
GitalyClient
class
Commit
attr_reader
:repository
,
:gitaly_commit
delegate
:id
,
:subject
,
:body
,
:author
,
:committer
,
:parent_ids
,
to: :gitaly_commit
def
initialize
(
repository
,
gitaly_commit
)
@repository
=
repository
@gitaly_commit
=
gitaly_commit
end
end
end
end
lib/gitlab/gitaly_client/commit_service.rb
View file @
c21ae07e
...
@@ -107,8 +107,7 @@ module Gitlab
...
@@ -107,8 +107,7 @@ module Gitlab
gitaly_commit
=
GitalyClient
.
call
(
@repository
.
storage
,
:commit_service
,
:last_commit_for_path
,
request
).
commit
gitaly_commit
=
GitalyClient
.
call
(
@repository
.
storage
,
:commit_service
,
:last_commit_for_path
,
request
).
commit
return
unless
gitaly_commit
return
unless
gitaly_commit
commit
=
GitalyClient
::
Commit
.
new
(
@repository
,
gitaly_commit
)
Gitlab
::
Git
::
Commit
.
new
(
@repository
,
gitaly_commit
)
Gitlab
::
Git
::
Commit
.
new
(
commit
)
end
end
def
between
(
from
,
to
)
def
between
(
from
,
to
)
...
@@ -156,7 +155,7 @@ module Gitlab
...
@@ -156,7 +155,7 @@ module Gitlab
private
private
def
commit_diff_request_params
(
commit
,
options
=
{})
def
commit_diff_request_params
(
commit
,
options
=
{})
parent_id
=
commit
.
parent
s
[
0
]
&
.
id
||
EMPTY_TREE_ID
parent_id
=
commit
.
parent
_ids
.
first
||
EMPTY_TREE_ID
{
{
repository:
@gitaly_repo
,
repository:
@gitaly_repo
,
...
@@ -169,8 +168,7 @@ module Gitlab
...
@@ -169,8 +168,7 @@ module Gitlab
def
consume_commits_response
(
response
)
def
consume_commits_response
(
response
)
response
.
flat_map
do
|
message
|
response
.
flat_map
do
|
message
|
message
.
commits
.
map
do
|
gitaly_commit
|
message
.
commits
.
map
do
|
gitaly_commit
|
commit
=
GitalyClient
::
Commit
.
new
(
@repository
,
gitaly_commit
)
Gitlab
::
Git
::
Commit
.
new
(
@repository
,
gitaly_commit
)
Gitlab
::
Git
::
Commit
.
new
(
commit
)
end
end
end
end
end
end
...
...
lib/gitlab/gitaly_client/ref_service.rb
View file @
c21ae07e
...
@@ -16,8 +16,7 @@ module Gitlab
...
@@ -16,8 +16,7 @@ module Gitlab
response
.
flat_map
do
|
message
|
response
.
flat_map
do
|
message
|
message
.
branches
.
map
do
|
branch
|
message
.
branches
.
map
do
|
branch
|
gitaly_commit
=
GitalyClient
::
Commit
.
new
(
@repository
,
branch
.
target
)
target_commit
=
Gitlab
::
Git
::
Commit
.
decorate
(
@repository
,
branch
.
target
)
target_commit
=
Gitlab
::
Git
::
Commit
.
decorate
(
gitaly_commit
)
Gitlab
::
Git
::
Branch
.
new
(
@repository
,
branch
.
name
,
branch
.
target
.
id
,
target_commit
)
Gitlab
::
Git
::
Branch
.
new
(
@repository
,
branch
.
name
,
branch
.
target
.
id
,
target_commit
)
end
end
end
end
...
@@ -102,8 +101,7 @@ module Gitlab
...
@@ -102,8 +101,7 @@ module Gitlab
response
.
flat_map
do
|
message
|
response
.
flat_map
do
|
message
|
message
.
tags
.
map
do
|
gitaly_tag
|
message
.
tags
.
map
do
|
gitaly_tag
|
if
gitaly_tag
.
target_commit
.
present?
if
gitaly_tag
.
target_commit
.
present?
commit
=
GitalyClient
::
Commit
.
new
(
@repository
,
gitaly_tag
.
target_commit
)
gitaly_commit
=
Gitlab
::
Git
::
Commit
.
decorate
(
@repository
,
gitaly_tag
.
target_commit
)
gitaly_commit
=
Gitlab
::
Git
::
Commit
.
new
(
commit
)
end
end
Gitlab
::
Git
::
Tag
.
new
(
Gitlab
::
Git
::
Tag
.
new
(
...
@@ -141,7 +139,7 @@ module Gitlab
...
@@ -141,7 +139,7 @@ module Gitlab
committer_email:
response
.
commit_committer
.
email
.
dup
committer_email:
response
.
commit_committer
.
email
.
dup
}
}
Gitlab
::
Git
::
Commit
.
decorate
(
hash
)
Gitlab
::
Git
::
Commit
.
decorate
(
@repository
,
hash
)
end
end
end
end
end
end
...
...
spec/lib/gitlab/git/commit_spec.rb
View file @
c21ae07e
...
@@ -2,7 +2,7 @@ require "spec_helper"
...
@@ -2,7 +2,7 @@ require "spec_helper"
describe
Gitlab
::
Git
::
Commit
,
seed_helper:
true
do
describe
Gitlab
::
Git
::
Commit
,
seed_helper:
true
do
let
(
:repository
)
{
Gitlab
::
Git
::
Repository
.
new
(
'default'
,
TEST_REPO_PATH
)
}
let
(
:repository
)
{
Gitlab
::
Git
::
Repository
.
new
(
'default'
,
TEST_REPO_PATH
)
}
let
(
:commit
)
{
Gitlab
::
Git
::
Commit
.
find
(
repository
,
SeedRepo
::
Commit
::
ID
)
}
let
(
:commit
)
{
described_class
.
find
(
repository
,
SeedRepo
::
Commit
::
ID
)
}
let
(
:rugged_commit
)
do
let
(
:rugged_commit
)
do
repository
.
rugged
.
lookup
(
SeedRepo
::
Commit
::
ID
)
repository
.
rugged
.
lookup
(
SeedRepo
::
Commit
::
ID
)
end
end
...
@@ -24,7 +24,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
...
@@ -24,7 +24,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
}
}
@parents
=
[
repo
.
head
.
target
]
@parents
=
[
repo
.
head
.
target
]
@gitlab_parents
=
@parents
.
map
{
|
c
|
Gitlab
::
Git
::
Commit
.
decorate
(
c
)
}
@gitlab_parents
=
@parents
.
map
{
|
c
|
described_class
.
decorate
(
repository
,
c
)
}
@tree
=
@parents
.
first
.
tree
@tree
=
@parents
.
first
.
tree
sha
=
Rugged
::
Commit
.
create
(
sha
=
Rugged
::
Commit
.
create
(
...
@@ -38,7 +38,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
...
@@ -38,7 +38,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
)
)
@raw_commit
=
repo
.
lookup
(
sha
)
@raw_commit
=
repo
.
lookup
(
sha
)
@commit
=
Gitlab
::
Git
::
Commit
.
new
(
@raw_commit
)
@commit
=
described_class
.
new
(
repository
,
@raw_commit
)
end
end
it
{
expect
(
@commit
.
short_id
).
to
eq
(
@raw_commit
.
oid
[
0
..
10
])
}
it
{
expect
(
@commit
.
short_id
).
to
eq
(
@raw_commit
.
oid
[
0
..
10
])
}
...
@@ -91,7 +91,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
...
@@ -91,7 +91,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
committer:
committer
committer:
committer
)
)
end
end
let
(
:commit
)
{
described_class
.
new
(
Gitlab
::
GitalyClient
::
Commit
.
new
(
repository
,
gitaly_commit
)
)
}
let
(
:commit
)
{
described_class
.
new
(
repository
,
gitaly_commit
)
}
it
{
expect
(
commit
.
short_id
).
to
eq
(
id
[
0
..
10
])
}
it
{
expect
(
commit
.
short_id
).
to
eq
(
id
[
0
..
10
])
}
it
{
expect
(
commit
.
id
).
to
eq
(
id
)
}
it
{
expect
(
commit
.
id
).
to
eq
(
id
)
}
...
@@ -113,45 +113,45 @@ describe Gitlab::Git::Commit, seed_helper: true do
...
@@ -113,45 +113,45 @@ describe Gitlab::Git::Commit, seed_helper: true do
context
'Class methods'
do
context
'Class methods'
do
describe
'.find'
do
describe
'.find'
do
it
"should return first head commit if without params"
do
it
"should return first head commit if without params"
do
expect
(
Gitlab
::
Git
::
Commit
.
last
(
repository
).
id
).
to
eq
(
expect
(
described_class
.
last
(
repository
).
id
).
to
eq
(
repository
.
rugged
.
head
.
target
.
oid
repository
.
rugged
.
head
.
target
.
oid
)
)
end
end
it
"should return valid commit"
do
it
"should return valid commit"
do
expect
(
Gitlab
::
Git
::
Commit
.
find
(
repository
,
SeedRepo
::
Commit
::
ID
)).
to
be_valid_commit
expect
(
described_class
.
find
(
repository
,
SeedRepo
::
Commit
::
ID
)).
to
be_valid_commit
end
end
it
"should return valid commit for tag"
do
it
"should return valid commit for tag"
do
expect
(
Gitlab
::
Git
::
Commit
.
find
(
repository
,
'v1.0.0'
).
id
).
to
eq
(
'6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9'
)
expect
(
described_class
.
find
(
repository
,
'v1.0.0'
).
id
).
to
eq
(
'6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9'
)
end
end
it
"should return nil for non-commit ids"
do
it
"should return nil for non-commit ids"
do
blob
=
Gitlab
::
Git
::
Blob
.
find
(
repository
,
SeedRepo
::
Commit
::
ID
,
"files/ruby/popen.rb"
)
blob
=
Gitlab
::
Git
::
Blob
.
find
(
repository
,
SeedRepo
::
Commit
::
ID
,
"files/ruby/popen.rb"
)
expect
(
Gitlab
::
Git
::
Commit
.
find
(
repository
,
blob
.
id
)).
to
be_nil
expect
(
described_class
.
find
(
repository
,
blob
.
id
)).
to
be_nil
end
end
it
"should return nil for parent of non-commit object"
do
it
"should return nil for parent of non-commit object"
do
blob
=
Gitlab
::
Git
::
Blob
.
find
(
repository
,
SeedRepo
::
Commit
::
ID
,
"files/ruby/popen.rb"
)
blob
=
Gitlab
::
Git
::
Blob
.
find
(
repository
,
SeedRepo
::
Commit
::
ID
,
"files/ruby/popen.rb"
)
expect
(
Gitlab
::
Git
::
Commit
.
find
(
repository
,
"
#{
blob
.
id
}
^"
)).
to
be_nil
expect
(
described_class
.
find
(
repository
,
"
#{
blob
.
id
}
^"
)).
to
be_nil
end
end
it
"should return nil for nonexisting ids"
do
it
"should return nil for nonexisting ids"
do
expect
(
Gitlab
::
Git
::
Commit
.
find
(
repository
,
"+123_4532530XYZ"
)).
to
be_nil
expect
(
described_class
.
find
(
repository
,
"+123_4532530XYZ"
)).
to
be_nil
end
end
context
'with broken repo'
do
context
'with broken repo'
do
let
(
:repository
)
{
Gitlab
::
Git
::
Repository
.
new
(
'default'
,
TEST_BROKEN_REPO_PATH
)
}
let
(
:repository
)
{
Gitlab
::
Git
::
Repository
.
new
(
'default'
,
TEST_BROKEN_REPO_PATH
)
}
it
'returns nil'
do
it
'returns nil'
do
expect
(
Gitlab
::
Git
::
Commit
.
find
(
repository
,
SeedRepo
::
Commit
::
ID
)).
to
be_nil
expect
(
described_class
.
find
(
repository
,
SeedRepo
::
Commit
::
ID
)).
to
be_nil
end
end
end
end
end
end
describe
'.last_for_path'
do
describe
'.last_for_path'
do
context
'no path'
do
context
'no path'
do
subject
{
Gitlab
::
Git
::
Commit
.
last_for_path
(
repository
,
'master'
)
}
subject
{
described_class
.
last_for_path
(
repository
,
'master'
)
}
describe
'#id'
do
describe
'#id'
do
subject
{
super
().
id
}
subject
{
super
().
id
}
...
@@ -160,7 +160,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
...
@@ -160,7 +160,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
end
end
context
'path'
do
context
'path'
do
subject
{
Gitlab
::
Git
::
Commit
.
last_for_path
(
repository
,
'master'
,
'files/ruby'
)
}
subject
{
described_class
.
last_for_path
(
repository
,
'master'
,
'files/ruby'
)
}
describe
'#id'
do
describe
'#id'
do
subject
{
super
().
id
}
subject
{
super
().
id
}
...
@@ -169,7 +169,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
...
@@ -169,7 +169,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
end
end
context
'ref + path'
do
context
'ref + path'
do
subject
{
Gitlab
::
Git
::
Commit
.
last_for_path
(
repository
,
SeedRepo
::
Commit
::
ID
,
'encoding'
)
}
subject
{
described_class
.
last_for_path
(
repository
,
SeedRepo
::
Commit
::
ID
,
'encoding'
)
}
describe
'#id'
do
describe
'#id'
do
subject
{
super
().
id
}
subject
{
super
().
id
}
...
@@ -181,7 +181,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
...
@@ -181,7 +181,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
describe
'.where'
do
describe
'.where'
do
context
'path is empty string'
do
context
'path is empty string'
do
subject
do
subject
do
commits
=
Gitlab
::
Git
::
Commit
.
where
(
commits
=
described_class
.
where
(
repo:
repository
,
repo:
repository
,
ref:
'master'
,
ref:
'master'
,
path:
''
,
path:
''
,
...
@@ -199,7 +199,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
...
@@ -199,7 +199,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
context
'path is nil'
do
context
'path is nil'
do
subject
do
subject
do
commits
=
Gitlab
::
Git
::
Commit
.
where
(
commits
=
described_class
.
where
(
repo:
repository
,
repo:
repository
,
ref:
'master'
,
ref:
'master'
,
path:
nil
,
path:
nil
,
...
@@ -217,7 +217,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
...
@@ -217,7 +217,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
context
'ref is branch name'
do
context
'ref is branch name'
do
subject
do
subject
do
commits
=
Gitlab
::
Git
::
Commit
.
where
(
commits
=
described_class
.
where
(
repo:
repository
,
repo:
repository
,
ref:
'master'
,
ref:
'master'
,
path:
'files'
,
path:
'files'
,
...
@@ -237,7 +237,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
...
@@ -237,7 +237,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
context
'ref is commit id'
do
context
'ref is commit id'
do
subject
do
subject
do
commits
=
Gitlab
::
Git
::
Commit
.
where
(
commits
=
described_class
.
where
(
repo:
repository
,
repo:
repository
,
ref:
"874797c3a73b60d2187ed6e2fcabd289ff75171e"
,
ref:
"874797c3a73b60d2187ed6e2fcabd289ff75171e"
,
path:
'files'
,
path:
'files'
,
...
@@ -257,7 +257,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
...
@@ -257,7 +257,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
context
'ref is tag'
do
context
'ref is tag'
do
subject
do
subject
do
commits
=
Gitlab
::
Git
::
Commit
.
where
(
commits
=
described_class
.
where
(
repo:
repository
,
repo:
repository
,
ref:
'v1.0.0'
,
ref:
'v1.0.0'
,
path:
'files'
,
path:
'files'
,
...
@@ -278,7 +278,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
...
@@ -278,7 +278,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
describe
'.between'
do
describe
'.between'
do
subject
do
subject
do
commits
=
Gitlab
::
Git
::
Commit
.
between
(
repository
,
SeedRepo
::
Commit
::
PARENT_ID
,
SeedRepo
::
Commit
::
ID
)
commits
=
described_class
.
between
(
repository
,
SeedRepo
::
Commit
::
PARENT_ID
,
SeedRepo
::
Commit
::
ID
)
commits
.
map
{
|
c
|
c
.
id
}
commits
.
map
{
|
c
|
c
.
id
}
end
end
...
@@ -294,12 +294,12 @@ describe Gitlab::Git::Commit, seed_helper: true do
...
@@ -294,12 +294,12 @@ describe Gitlab::Git::Commit, seed_helper: true do
it
'should return a return a collection of commits'
do
it
'should return a return a collection of commits'
do
commits
=
described_class
.
find_all
(
repository
)
commits
=
described_class
.
find_all
(
repository
)
expect
(
commits
).
to
all
(
be_a_kind_of
(
Gitlab
::
Git
::
Commit
)
)
expect
(
commits
).
to
all
(
be_a_kind_of
(
described_class
)
)
end
end
context
'max_count'
do
context
'max_count'
do
subject
do
subject
do
commits
=
Gitlab
::
Git
::
Commit
.
find_all
(
commits
=
described_class
.
find_all
(
repository
,
repository
,
max_count:
50
max_count:
50
)
)
...
@@ -322,7 +322,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
...
@@ -322,7 +322,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
context
'ref + max_count + skip'
do
context
'ref + max_count + skip'
do
subject
do
subject
do
commits
=
Gitlab
::
Git
::
Commit
.
find_all
(
commits
=
described_class
.
find_all
(
repository
,
repository
,
ref:
'master'
,
ref:
'master'
,
max_count:
50
,
max_count:
50
,
...
@@ -374,7 +374,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
...
@@ -374,7 +374,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
end
end
describe
'#init_from_rugged'
do
describe
'#init_from_rugged'
do
let
(
:gitlab_commit
)
{
Gitlab
::
Git
::
Commit
.
new
(
rugged_commit
)
}
let
(
:gitlab_commit
)
{
described_class
.
new
(
repository
,
rugged_commit
)
}
subject
{
gitlab_commit
}
subject
{
gitlab_commit
}
describe
'#id'
do
describe
'#id'
do
...
@@ -384,7 +384,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
...
@@ -384,7 +384,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
end
end
describe
'#init_from_hash'
do
describe
'#init_from_hash'
do
let
(
:commit
)
{
Gitlab
::
Git
::
Commit
.
new
(
sample_commit_hash
)
}
let
(
:commit
)
{
described_class
.
new
(
repository
,
sample_commit_hash
)
}
subject
{
commit
}
subject
{
commit
}
describe
'#id'
do
describe
'#id'
do
...
@@ -451,7 +451,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
...
@@ -451,7 +451,7 @@ describe Gitlab::Git::Commit, seed_helper: true do
end
end
describe
'#ref_names'
do
describe
'#ref_names'
do
let
(
:commit
)
{
Gitlab
::
Git
::
Commit
.
find
(
repository
,
'master'
)
}
let
(
:commit
)
{
described_class
.
find
(
repository
,
'master'
)
}
subject
{
commit
.
ref_names
(
repository
)
}
subject
{
commit
.
ref_names
(
repository
)
}
it
'has 1 element'
do
it
'has 1 element'
do
...
...
spec/lib/gitlab/git/repository_spec.rb
View file @
c21ae07e
...
@@ -505,17 +505,22 @@ describe Gitlab::Git::Repository, seed_helper: true do
...
@@ -505,17 +505,22 @@ describe Gitlab::Git::Repository, seed_helper: true do
end
end
describe
"#log"
do
describe
"#log"
do
commit_with_old_name
=
nil
let
(
:commit_with_old_name
)
do
commit_with_new_name
=
nil
Gitlab
::
Git
::
Commit
.
decorate
(
repository
,
@commit_with_old_name_id
)
rename_commit
=
nil
end
let
(
:commit_with_new_name
)
do
Gitlab
::
Git
::
Commit
.
decorate
(
repository
,
@commit_with_new_name_id
)
end
let
(
:rename_commit
)
do
Gitlab
::
Git
::
Commit
.
decorate
(
repository
,
@rename_commit_id
)
end
before
(
:context
)
do
before
(
:context
)
do
# Add new commits so that there's a renamed file in the commit history
# Add new commits so that there's a renamed file in the commit history
repo
=
Gitlab
::
Git
::
Repository
.
new
(
'default'
,
TEST_REPO_PATH
).
rugged
repo
=
Gitlab
::
Git
::
Repository
.
new
(
'default'
,
TEST_REPO_PATH
).
rugged
@commit_with_old_name_id
=
new_commit_edit_old_file
(
repo
)
commit_with_old_name
=
Gitlab
::
Git
::
Commit
.
decorate
(
new_commit_edit_old_file
(
repo
))
@rename_commit_id
=
new_commit_move_file
(
repo
)
rename_commit
=
Gitlab
::
Git
::
Commit
.
decorate
(
new_commit_move_file
(
repo
))
@commit_with_new_name_id
=
new_commit_edit_new_file
(
repo
)
commit_with_new_name
=
Gitlab
::
Git
::
Commit
.
decorate
(
new_commit_edit_new_file
(
repo
))
end
end
after
(
:context
)
do
after
(
:context
)
do
...
...
spec/lib/gitlab/gitaly_client/commit_service_spec.rb
View file @
c21ae07e
...
@@ -30,7 +30,7 @@ describe Gitlab::GitalyClient::CommitService do
...
@@ -30,7 +30,7 @@ describe Gitlab::GitalyClient::CommitService do
context
'when a commit does not have a parent'
do
context
'when a commit does not have a parent'
do
it
'sends an RPC request with empty tree ref as left commit'
do
it
'sends an RPC request with empty tree ref as left commit'
do
initial_commit
=
project
.
commit
(
'1a0b36b3cdad1d2ee32457c102a8c0b7056fa863'
)
initial_commit
=
project
.
commit
(
'1a0b36b3cdad1d2ee32457c102a8c0b7056fa863'
)
.
raw
request
=
Gitaly
::
CommitDiffRequest
.
new
(
request
=
Gitaly
::
CommitDiffRequest
.
new
(
repository:
repository_message
,
repository:
repository_message
,
left_commit_id:
'4b825dc642cb6eb9a060e54bf8d69288fbee4904'
,
left_commit_id:
'4b825dc642cb6eb9a060e54bf8d69288fbee4904'
,
...
...
spec/models/commit_spec.rb
View file @
c21ae07e
...
@@ -33,7 +33,6 @@ describe Commit do
...
@@ -33,7 +33,6 @@ describe Commit do
describe
'#to_reference'
do
describe
'#to_reference'
do
let
(
:project
)
{
create
(
:project
,
:repository
,
path:
'sample-project'
)
}
let
(
:project
)
{
create
(
:project
,
:repository
,
path:
'sample-project'
)
}
let
(
:commit
)
{
project
.
commit
}
it
'returns a String reference to the object'
do
it
'returns a String reference to the object'
do
expect
(
commit
.
to_reference
).
to
eq
commit
.
id
expect
(
commit
.
to_reference
).
to
eq
commit
.
id
...
@@ -47,7 +46,6 @@ describe Commit do
...
@@ -47,7 +46,6 @@ describe Commit do
describe
'#reference_link_text'
do
describe
'#reference_link_text'
do
let
(
:project
)
{
create
(
:project
,
:repository
,
path:
'sample-project'
)
}
let
(
:project
)
{
create
(
:project
,
:repository
,
path:
'sample-project'
)
}
let
(
:commit
)
{
project
.
commit
}
it
'returns a String reference to the object'
do
it
'returns a String reference to the object'
do
expect
(
commit
.
reference_link_text
).
to
eq
commit
.
short_id
expect
(
commit
.
reference_link_text
).
to
eq
commit
.
short_id
...
...
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