Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
github
hub
提交
e2563e1d
H
hub
项目概览
github
/
hub
大约 1 年 前同步成功
通知
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,发现更多精彩内容 >>
提交
e2563e1d
编写于
7月 18, 2013
作者:
J
Jingwen Owen Ou
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'tgkokk-gh-clone-fix'
上级
ab686c68
08e1d155
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
27 addition
and
6 deletion
+27
-6
commands/clone.go
commands/clone.go
+5
-0
commands/clone_test.go
commands/clone_test.go
+8
-1
github/project.go
github/project.go
+14
-5
未找到文件。
commands/clone.go
浏览文件 @
e2563e1d
...
...
@@ -46,12 +46,17 @@ func transformCloneArgs(args *Args) {
continue
}
if
github
.
MatchURL
(
a
)
!=
nil
{
break
}
if
nameWithOwnerRegexp
.
MatchString
(
a
)
&&
!
isDir
(
a
)
{
name
,
owner
:=
parseCloneNameAndOwner
(
a
)
config
:=
github
.
CurrentConfig
()
isSSH
=
isSSH
||
owner
==
config
.
User
if
owner
==
""
{
owner
=
config
.
User
isSSH
=
true
}
project
:=
github
.
Project
{
Name
:
name
,
Owner
:
owner
}
...
...
commands/clone_test.go
浏览文件 @
e2563e1d
...
...
@@ -42,11 +42,18 @@ func TestTransformCloneArgs(t *testing.T) {
transformCloneArgs
(
args
)
assert
.
Equal
(
t
,
1
,
args
.
ParamsSize
())
assert
.
Equal
(
t
,
"git
://github.com/
jingweno/jekyll_and_hyde.git"
,
args
.
FirstParam
())
assert
.
Equal
(
t
,
"git
@github.com:
jingweno/jekyll_and_hyde.git"
,
args
.
FirstParam
())
args
=
NewArgs
([]
string
{
"clone"
,
"-p"
,
"jekyll_and_hyde"
})
transformCloneArgs
(
args
)
assert
.
Equal
(
t
,
1
,
args
.
ParamsSize
())
assert
.
Equal
(
t
,
"git@github.com:jingweno/jekyll_and_hyde.git"
,
args
.
FirstParam
())
args
=
NewArgs
([]
string
{
"clone"
,
"git://github.com/jingweno/gh"
,
"gh"
})
transformCloneArgs
(
args
)
assert
.
Equal
(
t
,
2
,
args
.
ParamsSize
())
assert
.
Equal
(
t
,
"git://github.com/jingweno/gh"
,
args
.
FirstParam
())
assert
.
Equal
(
t
,
"gh"
,
args
.
GetParam
(
1
))
}
github/project.go
浏览文件 @
e2563e1d
...
...
@@ -125,21 +125,30 @@ func parseOwnerAndName(remote string) (owner string, name string) {
return
url
[
1
],
url
[
2
]
}
func
mustMatchGitHubURL
(
url
string
)
([]
string
,
error
)
{
func
MatchURL
(
url
string
)
[]
string
{
httpRegex
:=
regexp
.
MustCompile
(
"https://github
\\
.com/(.+)/(.+?)(
\\
.git|$)"
)
if
httpRegex
.
MatchString
(
url
)
{
return
httpRegex
.
FindStringSubmatch
(
url
)
,
nil
return
httpRegex
.
FindStringSubmatch
(
url
)
}
readOnlyRegex
:=
regexp
.
MustCompile
(
"git://github
\\
.com/(.+)/(.+?)(
\\
.git|$)"
)
if
readOnlyRegex
.
MatchString
(
url
)
{
return
readOnlyRegex
.
FindStringSubmatch
(
url
)
,
nil
return
readOnlyRegex
.
FindStringSubmatch
(
url
)
}
sshRegex
:=
regexp
.
MustCompile
(
"git@github
\\
.com:(.+)/(.+?)(
\\
.git|$)"
)
if
sshRegex
.
MatchString
(
url
)
{
return
sshRegex
.
FindStringSubmatch
(
url
),
nil
return
sshRegex
.
FindStringSubmatch
(
url
)
}
return
nil
}
func
mustMatchGitHubURL
(
url
string
)
([]
string
,
error
)
{
githubURL
:=
MatchURL
(
url
)
if
githubURL
==
nil
{
return
nil
,
errors
.
New
(
"The origin remote doesn't point to a GitHub repository: "
+
url
)
}
return
nil
,
errors
.
New
(
"The origin remote doesn't point to a GitHub repository: "
+
url
)
return
githubURL
,
nil
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录