Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
df5f362c
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 搜索 >>
提交
df5f362c
编写于
2月 01, 2016
作者:
R
Rubén Dávila
提交者:
Robert Speicher
2月 19, 2016
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add some specs plus some refactor.
上级
b5935f07
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
43 addition
and
10 deletion
+43
-10
app/controllers/projects/merge_requests_controller.rb
app/controllers/projects/merge_requests_controller.rb
+4
-2
app/models/merge_request.rb
app/models/merge_request.rb
+8
-0
app/models/repository.rb
app/models/repository.rb
+5
-8
spec/models/repository_spec.rb
spec/models/repository_spec.rb
+26
-0
未找到文件。
app/controllers/projects/merge_requests_controller.rb
浏览文件 @
df5f362c
...
...
@@ -199,11 +199,13 @@ class Projects::MergeRequestsController < Projects::ApplicationController
target_branch:
@merge_request
.
target_branch
,
source_project_id:
@merge_request
.
target_project_id
,
target_project_id:
@merge_request
.
target_project_id
,
description:
"Reverts
#{
@merge_request
.
to_reference
}
"
description:
@merge_request
.
revert_description
}}
if
target_branch_exists
@repository
.
revert_merge
(
current_user
,
@merge_request
)
@repository
.
revert_merge
(
current_user
,
@merge_request
.
merge_commit_sha
,
@merge_request
.
revert_branch_name
,
@merge_request
.
revert_title
)
redirect_to
new_namespace_project_merge_request_url
(
@project
.
namespace
,
@project
,
url_params
)
else
redirect_to
namespace_project_merge_request_url
(
@project
.
namespace
,
@project
,
@merge_request
),
...
...
app/models/merge_request.rb
浏览文件 @
df5f362c
...
...
@@ -537,4 +537,12 @@ class MergeRequest < ActiveRecord::Base
def
revert_branch_name
"revert-
#{
iid
}
-
#{
target_branch
}
"
end
def
revert_title
"Revert
\"
#{
title
}
\"
"
end
def
revert_description
"Reverts
#{
to_reference
}
"
end
end
app/models/repository.rb
浏览文件 @
df5f362c
...
...
@@ -622,25 +622,22 @@ class Repository
merge_commit_sha
end
def
revert_merge
(
user
,
merge_request
)
revert_branch_name
=
merge_request
.
revert_branch_name
merge_commit_id
=
merge_request
.
merge_commit_sha
def
revert_merge
(
user
,
merge_commit_id
,
new_branch_name
,
commit_message
)
# branch exists and it's highly probable that it has the revert commit
return
if
find_branch
(
revert
_branch_name
)
return
if
find_branch
(
new
_branch_name
)
add_branch
(
user
,
revert
_branch_name
,
merge_commit_id
)
add_branch
(
user
,
new
_branch_name
,
merge_commit_id
)
new_index
=
rugged
.
revert_commit
(
merge_commit_id
,
merge_commit_id
,
mainline:
1
)
committer
=
user_to_committer
(
user
)
options
=
{
message:
"Revert
\"
#{
merge_request
.
title
}
\"
"
,
message:
commit_message
,
author:
committer
,
committer:
committer
,
tree:
new_index
.
write_tree
(
rugged
),
parents:
[
rugged
.
lookup
(
merge_commit_id
)],
update_ref:
"refs/heads/
#{
revert
_branch_name
}
"
update_ref:
"refs/heads/
#{
new
_branch_name
}
"
}
Rugged
::
Commit
.
create
(
rugged
,
options
)
...
...
spec/models/repository_spec.rb
浏览文件 @
df5f362c
...
...
@@ -5,6 +5,15 @@ describe Repository, models: true do
let
(
:repository
)
{
create
(
:project
).
repository
}
let
(
:user
)
{
create
(
:user
)
}
let
(
:commit_options
)
do
author
=
repository
.
user_to_committer
(
user
)
{
message:
'Test message'
,
committer:
author
,
author:
author
}
end
let
(
:merge_commit_id
)
do
master_commit
=
repository
.
commit
(
'master'
)
source_sha
=
repository
.
find_branch
(
'feature'
).
target
repository
.
merge
(
user
,
source_sha
,
'master'
,
commit_options
)
end
describe
:branch_names_contains
do
subject
{
repository
.
branch_names_contains
(
sample_commit
.
id
)
}
...
...
@@ -426,4 +435,21 @@ describe Repository, models: true do
it
{
is_expected
.
not_to
include
(
'e56497bb5f03a90a51293fc6d516788730953899'
)
}
end
describe
'#merge'
do
it
'should merge the code and return the commit id'
do
expect
(
merge_commit_id
).
to
be_present
expect
(
repository
.
blob_at
(
merge_commit_id
,
'files/ruby/feature.rb'
)).
to
be_present
end
end
describe
'#revert_merge'
do
it
'should revert the changes'
do
repository
.
revert_merge
(
user
,
merge_commit_id
,
'revert-changes'
,
'Revert changes'
)
source_sha
=
repository
.
find_branch
(
'revert-changes'
).
target
repository
.
merge
(
user
,
source_sha
,
'master'
,
commit_options
)
expect
(
repository
.
blob_at_branch
(
'master'
,
'files/ruby/feature.rb'
)).
not_to
be_present
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录