Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
65806ec6
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,发现更多精彩内容 >>
提交
65806ec6
编写于
12月 06, 2016
作者:
L
Lin Jen-Shin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Re-enable tests for update_branch_with_hooks and
Add back check if we're losing commits in a merge.
上级
444da6f4
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
51 addition
and
14 deletion
+51
-14
app/services/git_operation_service.rb
app/services/git_operation_service.rb
+13
-2
spec/models/repository_spec.rb
spec/models/repository_spec.rb
+38
-12
未找到文件。
app/services/git_operation_service.rb
浏览文件 @
65806ec6
...
...
@@ -102,9 +102,20 @@ GitOperationService = Struct.new(:user, :repository) do
raise
Repository
::
CommitError
.
new
(
'Failed to create commit'
)
end
service
.
newrev
=
nextrev
branch
=
repository
.
find_branch
(
ref
[
Gitlab
::
Git
::
BRANCH_REF_PREFIX
.
size
..-
1
])
prevrev
=
if
branch
&&
!
repository
.
rugged
.
lookup
(
nextrev
).
parent_ids
.
empty?
repository
.
rugged
.
merge_base
(
nextrev
,
branch
.
dereferenced_target
.
sha
)
else
newrev
end
update_ref!
(
ref
,
nextrev
,
newrev
)
update_ref!
(
ref
,
nextrev
,
prevrev
)
service
.
newrev
=
nextrev
# If repo was empty expire cache
repository
.
after_create
if
was_empty
...
...
spec/models/repository_spec.rb
浏览文件 @
65806ec6
...
...
@@ -682,33 +682,48 @@ describe Repository, models: true do
end
end
x
describe
'#update_branch_with_hooks'
do
describe
'#update_branch_with_hooks'
do
let
(
:old_rev
)
{
'0b4bc9a49b562e85de7cc9e834518ea6828729b9'
}
# git rev-parse feature
let
(
:new_rev
)
{
'a74ae73c1ccde9b974a70e82b901588071dc142a'
}
# commit whose parent is old_rev
context
'when pre hooks were successful'
do
before
do
expect_any_instance_of
(
GitHooksService
).
to
receive
(
:execute
).
with
(
user
,
repository
.
path_to_repo
,
old_rev
,
new_rev
,
'refs/heads/feature'
).
and_yield
.
and_return
(
true
)
service
=
GitHooksService
.
new
expect
(
GitHooksService
).
to
receive
(
:new
).
and_return
(
service
)
expect
(
service
).
to
receive
(
:execute
).
with
(
user
,
repository
.
path_to_repo
,
old_rev
,
old_rev
,
'refs/heads/feature'
).
and_yield
(
service
).
and_return
(
true
)
end
it
'runs without errors'
do
expect
do
repository
.
update_branch_with_hooks
(
user
,
'feature'
)
{
new_rev
}
GitOperationService
.
new
(
user
,
repository
).
with_branch
(
'feature'
)
do
new_rev
end
end
.
not_to
raise_error
end
it
'ensures the autocrlf Git option is set to :input'
do
expect
(
repository
).
to
receive
(
:update_autocrlf_option
)
service
=
GitOperationService
.
new
(
user
,
repository
)
expect
(
service
).
to
receive
(
:update_autocrlf_option
)
repository
.
update_branch_with_hooks
(
user
,
'feature'
)
{
new_rev
}
service
.
with_branch
(
'feature'
)
{
new_rev
}
end
context
"when the branch wasn't empty"
do
it
'updates the head'
do
expect
(
repository
.
find_branch
(
'feature'
).
dereferenced_target
.
id
).
to
eq
(
old_rev
)
repository
.
update_branch_with_hooks
(
user
,
'feature'
)
{
new_rev
}
GitOperationService
.
new
(
user
,
repository
).
with_branch
(
'feature'
)
do
new_rev
end
expect
(
repository
.
find_branch
(
'feature'
).
dereferenced_target
.
id
).
to
eq
(
new_rev
)
end
end
...
...
@@ -727,7 +742,11 @@ describe Repository, models: true do
branch
=
'feature-ff-target'
repository
.
add_branch
(
user
,
branch
,
old_rev
)
expect
{
repository
.
update_branch_with_hooks
(
user
,
branch
)
{
new_rev
}
}.
not_to
raise_error
expect
do
GitOperationService
.
new
(
user
,
repository
).
with_branch
(
branch
)
do
new_rev
end
end
.
not_to
raise_error
end
end
...
...
@@ -742,7 +761,9 @@ describe Repository, models: true do
# Updating 'master' to new_rev would lose the commits on 'master' that
# are not contained in new_rev. This should not be allowed.
expect
do
repository
.
update_branch_with_hooks
(
user
,
branch
)
{
new_rev
}
GitOperationService
.
new
(
user
,
repository
).
with_branch
(
branch
)
do
new_rev
end
end
.
to
raise_error
(
Repository
::
CommitError
)
end
end
...
...
@@ -752,7 +773,9 @@ describe Repository, models: true do
allow_any_instance_of
(
Gitlab
::
Git
::
Hook
).
to
receive
(
:trigger
).
and_return
([
false
,
''
])
expect
do
repository
.
update_branch_with_hooks
(
user
,
'feature'
)
{
new_rev
}
GitOperationService
.
new
(
user
,
repository
).
with_branch
(
'feature'
)
do
new_rev
end
end
.
to
raise_error
(
GitHooksService
::
PreReceiveError
)
end
end
...
...
@@ -770,7 +793,10 @@ describe Repository, models: true do
expect
(
repository
).
to
receive
(
:expire_branches_cache
)
expect
(
repository
).
to
receive
(
:expire_has_visible_content_cache
)
repository
.
update_branch_with_hooks
(
user
,
'new-feature'
)
{
new_rev
}
GitOperationService
.
new
(
user
,
repository
).
with_branch
(
'new-feature'
)
do
new_rev
end
end
end
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录