Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
439e3f07
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 搜索 >>
提交
439e3f07
编写于
9月 29, 2017
作者:
E
Eric Eastwood
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Port semi-linear merge strategy to CE (mostly FE)
上级
dbfe8597
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
36 addition
and
3 deletion
+36
-3
app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_conflicts.js
...e_request_widget/components/states/mr_widget_conflicts.js
+1
-1
app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js
...cripts/vue_merge_request_widget/stores/mr_widget_store.js
+1
-0
app/models/merge_request.rb
app/models/merge_request.rb
+8
-0
app/serializers/merge_request_entity.rb
app/serializers/merge_request_entity.rb
+1
-0
app/views/projects/_merge_request_rebase_settings.html.haml
app/views/projects/_merge_request_rebase_settings.html.haml
+13
-0
app/views/projects/_merge_request_settings.html.haml
app/views/projects/_merge_request_settings.html.haml
+2
-0
spec/features/projects/project_settings_spec.rb
spec/features/projects/project_settings_spec.rb
+8
-0
spec/javascripts/vue_mr_widget/components/states/mr_widget_conflicts_spec.js
...e_mr_widget/components/states/mr_widget_conflicts_spec.js
+2
-2
未找到文件。
app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_conflicts.js
浏览文件 @
439e3f07
...
...
@@ -15,7 +15,7 @@ export default {
showDisabledButton />
<div class="media-body space-children">
<span
v-if="mr.
ffOnlyEnabl
ed"
v-if="mr.
shouldBeRebas
ed"
class="bold">
Fast-forward merge is not possible.
To merge this request, first rebase locally.
...
...
app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js
浏览文件 @
439e3f07
...
...
@@ -58,6 +58,7 @@ export default class MergeRequestStore {
this
.
mergeWhenPipelineSucceeds
=
data
.
merge_when_pipeline_succeeds
||
false
;
this
.
mergePath
=
data
.
merge_path
;
this
.
ffOnlyEnabled
=
data
.
ff_only_enabled
;
this
.
shouldBeRebased
=
!!
data
.
should_be_rebased
;
this
.
statusPath
=
data
.
status_path
;
this
.
emailPatchesPath
=
data
.
email_patches_path
;
this
.
plainDiffPath
=
data
.
plain_diff_path
;
...
...
app/models/merge_request.rb
浏览文件 @
439e3f07
...
...
@@ -524,6 +524,14 @@ class MergeRequest < ActiveRecord::Base
true
end
def
ff_merge_possible?
project
.
repository
.
ancestor?
(
target_branch_sha
,
diff_head_sha
)
end
def
should_be_rebased?
project
.
ff_merge_must_be_possible?
&&
!
ff_merge_possible?
end
def
can_cancel_merge_when_pipeline_succeeds?
(
current_user
)
can_be_merged_by?
(
current_user
)
||
self
.
author
==
current_user
end
...
...
app/serializers/merge_request_entity.rb
浏览文件 @
439e3f07
...
...
@@ -13,6 +13,7 @@ class MergeRequestEntity < IssuableEntity
expose
:target_branch
expose
:target_project_id
expose
:should_be_rebased?
,
as: :should_be_rebased
expose
:ff_only_enabled
do
|
merge_request
|
merge_request
.
project
.
merge_requests_ff_only_enabled
end
...
...
app/views/projects/_merge_request_rebase_settings.html.haml
0 → 100644
浏览文件 @
439e3f07
-
form
=
local_assigns
.
fetch
(
:form
)
.radio
=
label_tag
:project_merge_method_rebase_merge
do
=
form
.
radio_button
:merge_method
,
:rebase_merge
,
class:
"js-merge-method-radio"
%strong
Merge commit with semi-linear history
%br
%span
.descr
A merge commit is created for every merge, but merging is only allowed if fast-forward merge is possible.
This way you could make sure that if this merge request would build, after merging to target branch it would also build.
%br
%span
.descr
When fast-forward merge is not possible, the user must first rebase locally.
app/views/projects/_merge_request_settings.html.haml
浏览文件 @
439e3f07
...
...
@@ -11,6 +11,8 @@
%span
.descr
A merge commit is created for every merge, and merging is allowed as long as there are no conflicts.
=
render
'merge_request_rebase_settings'
,
form:
form
=
render
'merge_request_fast_forward_settings'
,
project:
@project
,
form:
form
=
render
'projects/merge_request_merge_settings'
,
form:
form
spec/features/projects/project_settings_spec.rb
浏览文件 @
439e3f07
...
...
@@ -41,6 +41,14 @@ describe 'Edit Project Settings' do
end
end
it
'shows "Merge commit with semi-linear history " strategy'
do
visit
edit_project_path
(
project
)
page
.
within
'.merge-requests-feature'
do
expect
(
page
).
to
have_content
'Merge commit with semi-linear history'
end
end
it
'shows "Fast-forward merge" strategy'
do
visit
edit_project_path
(
project
)
...
...
spec/javascripts/vue_mr_widget/components/states/mr_widget_conflicts_spec.js
浏览文件 @
439e3f07
...
...
@@ -81,13 +81,13 @@ describe('MRWidgetConflicts', () => {
});
});
describe
(
'
when fast-forward merge enabled
'
,
()
=>
{
describe
(
'
when fast-forward
or semi-linear
merge enabled
'
,
()
=>
{
let
vm
;
beforeEach
(()
=>
{
vm
=
mountComponent
(
ConflictsComponent
,
{
mr
:
{
ffOnlyEnabl
ed
:
true
,
shouldBeRebas
ed
:
true
,
},
});
});
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录