Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
github
hub
提交
91701809
H
hub
项目概览
github
/
hub
10 个月 前同步成功
通知
3
Star
22523
Fork
2406
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hub
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
91701809
编写于
10月 22, 2019
作者:
M
Mislav Marohnić
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[checkout] Handle case when PR matches the current branch
上级
cd81a7ba
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
38 addition
and
1 deletion
+38
-1
commands/checkout.go
commands/checkout.go
+9
-1
features/checkout.feature
features/checkout.feature
+29
-0
未找到文件。
commands/checkout.go
浏览文件 @
91701809
...
...
@@ -115,8 +115,16 @@ func transformCheckoutArgs(args *Args, pullRequest *github.PullRequest, newBranc
}
newArgs
=
append
(
newArgs
,
newBranchName
)
b
,
errB
:=
repo
.
CurrentBranch
()
isCurrentBranch
:=
errB
==
nil
&&
b
.
ShortName
()
==
newBranchName
ref
:=
fmt
.
Sprintf
(
"refs/pull/%d/head"
,
pullRequest
.
Number
)
args
.
Before
(
"git"
,
"fetch"
,
baseRemote
.
Name
,
fmt
.
Sprintf
(
"%s:%s"
,
ref
,
newBranchName
))
if
isCurrentBranch
{
args
.
Before
(
"git"
,
"fetch"
,
baseRemote
.
Name
,
ref
)
args
.
After
(
"git"
,
"merge"
,
"--ff-only"
,
"FETCH_HEAD"
)
}
else
{
args
.
Before
(
"git"
,
"fetch"
,
baseRemote
.
Name
,
fmt
.
Sprintf
(
"%s:%s"
,
ref
,
newBranchName
))
}
remote
:=
baseRemote
.
Name
mergeRef
:=
ref
...
...
features/checkout.feature
浏览文件 @
91701809
...
...
@@ -251,6 +251,35 @@ Feature: hub checkout <PULLREQ-URL>
And
"git checkout -f fixes -q"
should be run
And "fixes" should merge "refs/heads/fixes" from remote "git@github.com
:
mislav/jekyll.git"
Scenario
:
Modifiable fork into current branch
Given the GitHub API server
:
"""
get('/repos/mojombo/jekyll/pulls/77') {
json :number => 77, :head => {
:ref => "fixes",
:repo => {
:owner => { :login => "mislav" },
:name => "jekyll",
:html_url => "https://github.com/mislav/jekyll.git",
:private => false
},
}, :base => {
:repo => {
:name => 'jekyll',
:html_url => 'https://github.com/mojombo/jekyll',
:owner => { :login => "mojombo" },
}
}, :maintainer_can_modify => true
}
"""
And
I am on the
"fixes"
branch
And
there is a git FETCH_HEAD
When I successfully run `hub checkout https
:
//github.com/mojombo/jekyll/pull/77`
Then
"git fetch origin refs/pull/77/head"
should be run
And
"git checkout fixes"
should be run
And
"git merge --ff-only FETCH_HEAD"
should be run
And "fixes" should merge "refs/heads/fixes" from remote "git@github.com
:
mislav/jekyll.git"
Scenario
:
Modifiable fork with HTTPS
Given the GitHub API server
:
"""
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录