Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
github
hub
提交
31e91cdc
H
hub
项目概览
github
/
hub
11 个月 前同步成功
通知
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,发现更多精彩内容 >>
未验证
提交
31e91cdc
编写于
12月 28, 2018
作者:
M
Mislav Marohnić
提交者:
GitHub
12月 28, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #1988 from github/create-unrelated-origin
Improve `hub create` dealing with an existing "origin" remote
上级
cc38879b
9ac583ca
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
17 addition
and
24 deletion
+17
-24
commands/create.go
commands/create.go
+9
-4
features/create.feature
features/create.feature
+8
-3
github/localrepo.go
github/localrepo.go
+0
-4
github/localrepo_test.go
github/localrepo_test.go
+0
-13
未找到文件。
commands/create.go
浏览文件 @
31e91cdc
...
...
@@ -117,7 +117,7 @@ func create(command *Command, args *Args) {
err
=
fmt
.
Errorf
(
"Repository '%s' already exists and is public"
,
repo
.
FullName
)
utils
.
Check
(
err
)
}
else
{
ui
.
Errorln
(
"Existing repository detected
. Updating git remote
"
)
ui
.
Errorln
(
"Existing repository detected"
)
project
=
foundProject
}
}
else
{
...
...
@@ -138,10 +138,15 @@ func create(command *Command, args *Args) {
localRepo
,
err
:=
github
.
LocalRepo
()
utils
.
Check
(
err
)
remote
,
_
:=
localRepo
.
OriginRemote
()
if
remote
==
nil
||
remote
.
Name
!=
"origin"
{
originName
:=
"origin"
if
originRemote
,
err
:=
localRepo
.
RemoteByName
(
originName
);
err
==
nil
{
originProject
,
err
:=
originRemote
.
Project
()
if
err
!=
nil
||
!
originProject
.
SameAs
(
project
)
{
ui
.
Errorf
(
`A git remote named "%s" already exists and is set to push to '%s'.\n`
,
originRemote
.
Name
,
originRemote
.
PushURL
)
}
}
else
{
url
:=
project
.
GitURL
(
""
,
""
,
true
)
args
.
Before
(
"git"
,
"remote"
,
"add"
,
"-f"
,
"origin"
,
url
)
args
.
Before
(
"git"
,
"remote"
,
"add"
,
"-f"
,
originName
,
url
)
}
webUrl
:=
project
.
WebURL
(
""
,
""
,
""
)
...
...
features/create.feature
浏览文件 @
31e91cdc
...
...
@@ -111,6 +111,7 @@ Feature: hub create
And the "origin" remote has url "git
:
//github.com/mislav/dotfiles.git"
When
I successfully run `hub create`
Then the url for "origin" should be "git
:
//github.com/mislav/dotfiles.git"
And the output should contain exactly "https
:
//github.com/mislav/dotfiles\n"
Scenario
:
Unrelated origin remote already exists
Given the GitHub API server
:
...
...
@@ -122,8 +123,12 @@ Feature: hub create
"""
And the "origin" remote has url "git
:
//example.com/unrelated.git"
When
I successfully run `hub create`
Then the output should contain exactly "https
:
//github.com/mislav/dotfiles\n"
And the url for "origin" should be "git
:
//example.com/unrelated.git"
Then the url for "origin" should be "git
:
//example.com/unrelated.git"
And the stdout should contain exactly "https
:
//github.com/mislav/dotfiles\n"
And the stderr should contain exactly
:
"""
A git remote named "origin" already exists and is set to push to 'git://example.com/unrelated.git'.\n
"""
Scenario
:
Another remote already exists
Given the GitHub API server
:
...
...
@@ -145,7 +150,7 @@ Feature: hub create
}
"""
When
I successfully run `hub create`
Then
the output should contain
"Existing repository detected
. Updating git remote
\n"
Then
the output should contain
"Existing repository detected\n"
And the url for "origin" should be "git@github.com
:
mislav/dotfiles.git"
Scenario
:
GitHub repo already exists and is not private
...
...
github/localrepo.go
浏览文件 @
31e91cdc
...
...
@@ -170,10 +170,6 @@ func (r *GitHubRepo) RemoteForRepo(repo *Repository) (*Remote, error) {
return
nil
,
fmt
.
Errorf
(
"could not find git remote for %s/%s"
,
repo
.
Owner
.
Login
,
repo
.
Name
)
}
func
(
r
*
GitHubRepo
)
OriginRemote
()
(
remote
*
Remote
,
err
error
)
{
return
r
.
RemoteByName
(
"origin"
)
}
func
(
r
*
GitHubRepo
)
MainRemote
()
(
remote
*
Remote
,
err
error
)
{
r
.
loadRemotes
()
...
...
github/localrepo_test.go
浏览文件 @
31e91cdc
...
...
@@ -5,21 +5,8 @@ import (
"testing"
"github.com/bmizerany/assert"
"github.com/github/hub/fixtures"
)
func
TestGitHubRepo_OriginRemote
(
t
*
testing
.
T
)
{
repo
:=
fixtures
.
SetupTestRepo
()
defer
repo
.
TearDown
()
localRepo
,
_
:=
LocalRepo
()
gitRemote
,
_
:=
localRepo
.
OriginRemote
()
assert
.
Equal
(
t
,
"origin"
,
gitRemote
.
Name
)
u
,
_
:=
url
.
Parse
(
repo
.
Remote
)
assert
.
Equal
(
t
,
u
,
gitRemote
.
URL
)
}
func
TestGitHubRepo_remotesForPublish
(
t
*
testing
.
T
)
{
url
,
_
:=
url
.
Parse
(
"ssh://git@github.com/Owner/repo.git"
)
remotes
:=
[]
Remote
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录