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
1
Merge Requests
1
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
nexedi
gitlab-ce
Commits
bc249504
Commit
bc249504
authored
May 16, 2019
by
GitLab Bot
Browse files
Options
Browse Files
Download
Plain Diff
Automatic merge of gitlab-org/gitlab-ce master
parents
c33774f4
112193e8
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
63 additions
and
4 deletions
+63
-4
app/models/repository.rb
app/models/repository.rb
+22
-1
changelogs/unreleased/jc-omit-count-diverging-commits-max.yml
...gelogs/unreleased/jc-omit-count-diverging-commits-max.yml
+5
-0
lib/gitlab/git/repository.rb
lib/gitlab/git/repository.rb
+1
-1
spec/models/repository_spec.rb
spec/models/repository_spec.rb
+35
-2
No files found.
app/models/repository.rb
View file @
bc249504
...
...
@@ -283,14 +283,19 @@ class Repository
end
def
diverging_commit_counts
(
branch
)
return
diverging_commit_counts_without_max
(
branch
)
if
Feature
.
enabled?
(
'gitaly_count_diverging_commits_no_max'
)
## TODO: deprecate the below code after 12.0
@root_ref_hash
||=
raw_repository
.
commit
(
root_ref
).
id
cache
.
fetch
(
:"diverging_commit_counts_
#{
branch
.
name
}
"
)
do
# Rugged seems to throw a `ReferenceError` when given branch_names rather
# than SHA-1 hashes
branch_sha
=
branch
.
dereferenced_target
.
sha
number_commits_behind
,
number_commits_ahead
=
raw_repository
.
diverging_commit_count
(
@root_ref_hash
,
branch
.
dereferenced_target
.
sha
,
branch
_
sha
,
max_count:
MAX_DIVERGING_COUNT
)
if
number_commits_behind
+
number_commits_ahead
>=
MAX_DIVERGING_COUNT
...
...
@@ -301,6 +306,22 @@ class Repository
end
end
def
diverging_commit_counts_without_max
(
branch
)
@root_ref_hash
||=
raw_repository
.
commit
(
root_ref
).
id
cache
.
fetch
(
:"diverging_commit_counts_without_max_
#{
branch
.
name
}
"
)
do
# Rugged seems to throw a `ReferenceError` when given branch_names rather
# than SHA-1 hashes
branch_sha
=
branch
.
dereferenced_target
.
sha
number_commits_behind
,
number_commits_ahead
=
raw_repository
.
diverging_commit_count
(
@root_ref_hash
,
branch_sha
)
{
behind:
number_commits_behind
,
ahead:
number_commits_ahead
}
end
end
def
archive_metadata
(
ref
,
storage_path
,
format
=
"tar.gz"
,
append_sha
:,
path:
nil
)
raw_repository
.
archive_metadata
(
ref
,
...
...
changelogs/unreleased/jc-omit-count-diverging-commits-max.yml
0 → 100644
View file @
bc249504
---
title
:
Omit max-count for diverging_commit_counts behind feature flag
merge_request
:
28157
author
:
type
:
other
lib/gitlab/git/repository.rb
View file @
bc249504
...
...
@@ -500,7 +500,7 @@ module Gitlab
end
# Return total diverging commits count
def
diverging_commit_count
(
from
,
to
,
max_count
:)
def
diverging_commit_count
(
from
,
to
,
max_count:
0
)
wrapped_gitaly_errors
do
gitaly_commit_client
.
diverging_commit_count
(
from
,
to
,
max_count:
max_count
)
end
...
...
spec/models/repository_spec.rb
View file @
bc249504
...
...
@@ -2286,12 +2286,45 @@ describe Repository do
end
describe
'#diverging_commit_counts'
do
let
(
:diverged_branch
)
{
repository
.
find_branch
(
'fix'
)
}
let
(
:root_ref_sha
)
{
repository
.
raw_repository
.
commit
(
repository
.
root_ref
).
id
}
let
(
:diverged_branch_sha
)
{
diverged_branch
.
dereferenced_target
.
sha
}
it
'returns the commit counts behind and ahead of default branch'
do
result
=
repository
.
diverging_commit_counts
(
repository
.
find_branch
(
'fix'
))
result
=
repository
.
diverging_commit_counts
(
diverged_branch
)
expect
(
result
).
to
eq
(
behind:
29
,
ahead:
2
)
end
context
'when gitaly_count_diverging_commits_no_max is enabled'
do
before
do
stub_feature_flags
(
gitaly_count_diverging_commits_no_max:
true
)
end
it
'calls diverging_commit_count without max count'
do
expect
(
repository
.
raw_repository
)
.
to
receive
(
:diverging_commit_count
)
.
with
(
root_ref_sha
,
diverged_branch_sha
)
.
and_return
([
29
,
2
])
repository
.
diverging_commit_counts
(
diverged_branch
)
end
end
context
'when gitaly_count_diverging_commits_no_max is disabled'
do
before
do
stub_feature_flags
(
gitaly_count_diverging_commits_no_max:
false
)
end
it
'calls diverging_commit_count with max count'
do
expect
(
repository
.
raw_repository
)
.
to
receive
(
:diverging_commit_count
)
.
with
(
root_ref_sha
,
diverged_branch_sha
,
max_count:
Repository
::
MAX_DIVERGING_COUNT
)
.
and_return
([
29
,
2
])
repository
.
diverging_commit_counts
(
diverged_branch
)
end
end
end
describe
'#refresh_method_caches'
do
...
...
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