Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
a29f0c28
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
a29f0c28
编写于
1月 16, 2018
作者:
Z
Zeger-Jan van de Weg
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Allow pagination for WikiVersions on Gitaly request
上级
bd96f2d6
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
19 addition
and
43 deletion
+19
-43
Gemfile.lock
Gemfile.lock
+2
-2
lib/gitlab/git/wiki.rb
lib/gitlab/git/wiki.rb
+13
-19
lib/gitlab/gitaly_client/wiki_service.rb
lib/gitlab/gitaly_client/wiki_service.rb
+4
-22
未找到文件。
Gemfile.lock
浏览文件 @
a29f0c28
...
...
@@ -285,7 +285,7 @@ GEM
po_to_json (>= 1.0.0)
rails (>= 3.2.0)
gherkin-ruby (0.3.2)
gitaly-proto (0.7
3
.0)
gitaly-proto (0.7
4
.0)
google-protobuf (~> 3.1)
grpc (~> 1.0)
github-linguist (4.7.6)
...
...
@@ -1056,7 +1056,7 @@ DEPENDENCIES
gettext (~> 3.2.2)
gettext_i18n_rails (~> 1.8.0)
gettext_i18n_rails_js (~> 1.2.0)
gitaly-proto (~> 0.7
3
.0)
gitaly-proto (~> 0.7
4
.0)
github-linguist (~> 4.7.0)
gitlab-flowdock-git-hook (~> 1.0.1)
gitlab-markup (~> 1.6.2)
...
...
lib/gitlab/git/wiki.rb
浏览文件 @
a29f0c28
...
...
@@ -93,15 +93,15 @@ module Gitlab
# :per_page - The number of items per page.
# :limit - Total number of items to return.
def
page_versions
(
page_path
,
options
=
{})
puts
'-'
*
80
puts
options
puts
'-'
*
80
puts
byebug
@repository
.
gitaly_migrate
(
:wiki_page_versions
)
do
|
is_enabled
|
if
is_enabled
gitaly_wiki_client
.
page_versions
(
page_path
,
pagination_params
(
options
))
versions
=
gitaly_wiki_client
.
page_versions
(
page_path
,
options
)
# Gitaly uses gollum-lib to get the versions. Gollum defaults to 20
# per page, but also fetches 20 if `limit` or `per_page` < 20.
# Slicing returns an array with the expected number of items.
slice_bound
=
options
[
:limit
]
||
options
[
:per_page
]
||
Gollum
::
Page
.
per_page
versions
[
0
..
slice_bound
]
else
current_page
=
gollum_page_by_path
(
page_path
)
...
...
@@ -136,21 +136,15 @@ module Gitlab
# :per_page - The number of items per page.
# :limit - Total number of items to return.
def
commits_from_page
(
gollum_page
,
options
=
{})
pagination_options
=
pagination_params
(
options
)
unless
options
[
:limit
]
options
[
:offset
]
=
([
1
,
options
.
delete
(
:page
).
to_i
].
max
-
1
)
*
Gollum
::
Page
.
per_page
options
[
:limit
]
=
(
options
.
delete
(
:per_page
)
||
Gollum
::
Page
.
per_page
).
to_i
end
@repository
.
log
(
ref:
gollum_page
.
last_version
.
id
,
path:
gollum_page
.
path
,
limit:
pagination_options
[
:limit
],
offset:
pagination_options
[
:offset
])
end
def
pagination_params
(
options
)
return
options
if
options
[
:limit
]
options
=
options
.
dup
options
[
:offset
]
=
([
1
,
options
.
delete
(
:page
).
to_i
].
max
-
1
)
*
Gollum
::
Page
.
per_page
options
[
:limit
]
=
(
options
.
delete
(
:per_page
)
||
Gollum
::
Page
.
per_page
).
to_i
options
limit:
options
[
:limit
],
offset:
options
[
:offset
])
end
def
gollum_wiki
...
...
lib/gitlab/gitaly_client/wiki_service.rb
浏览文件 @
a29f0c28
...
...
@@ -108,38 +108,20 @@ module Gitlab
def
page_versions
(
page_path
,
options
)
request
=
Gitaly
::
WikiGetPageVersionsRequest
.
new
(
repository:
@gitaly_repo
,
page_path:
encode_binary
(
page_path
)
page_path:
encode_binary
(
page_path
),
page:
options
[
:page
]
||
1
,
per_page:
options
[
:per_page
]
||
Gollum
::
Page
.
per_page
)
min_index
=
options
[
:offset
].
to_i
max_index
=
min_index
+
options
[
:limit
].
to_i
byebug
stream
=
GitalyClient
.
call
(
@repository
.
storage
,
:wiki_service
,
:wiki_get_page_versions
,
request
)
version_index
=
0
versions
=
[]
# Allow limit and offset to be send to Gitaly: TODO
stream
.
each
do
|
message
|
puts
'§'
*
80
puts
version_index
message
.
versions
.
each
do
|
version
|
case
version_index
when
min_index
...
max_index
versions
<<
new_wiki_page_version
(
version
)
when
max_index
..
Float
::
INFINITY
return
versions
end
version_index
+=
1
puts
version_index
versions
<<
new_wiki_page_version
(
version
)
end
end
# when we're requesting page 99 but the stream doesn't go that far, whatever
# is fetched thus far
versions
end
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录