Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
github
hub
提交
dab9c5bc
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,发现更多精彩内容 >>
提交
dab9c5bc
编写于
7月 19, 2013
作者:
J
Jingwen Owen Ou
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'tgkokk-gh-push'
上级
e2563e1d
317012d3
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
80 addition
and
0 deletion
+80
-0
commands/commands.go
commands/commands.go
+1
-0
commands/push.go
commands/push.go
+54
-0
commands/push_test.go
commands/push_test.go
+25
-0
未找到文件。
commands/commands.go
浏览文件 @
dab9c5bc
...
...
@@ -60,6 +60,7 @@ var Branching = []*Command{
var
Remote
=
[]
*
Command
{
cmdClone
,
cmdFetch
,
cmdPush
,
cmdRemote
,
}
...
...
commands/push.go
0 → 100644
浏览文件 @
dab9c5bc
package
commands
import
(
"github.com/jingweno/gh/git"
"github.com/jingweno/gh/utils"
"strings"
)
var
cmdPush
=
&
Command
{
Run
:
push
,
GitExtension
:
true
,
Usage
:
"push REMOTE-1,REMOTE-2,...,REMOTE-N [REF]"
,
Short
:
"Upload data, tags and branches to a remote repository"
,
Long
:
`Push REF to each of REMOTE-1 through REMOTE-N by executing
multiple git-push(1) commands.`
,
}
/*
$ gh push origin,staging,qa bert_timeout
> git push origin bert_timeout
> git push staging bert_timeout
> git push qa bert_timeout
$ gh push origin
> git push origin HEAD
*/
func
push
(
command
*
Command
,
args
*
Args
)
{
if
!
args
.
IsParamsEmpty
()
||
!
strings
.
Contains
(
args
.
FirstParam
(),
","
)
{
transformPushArgs
(
args
)
}
}
func
transformPushArgs
(
args
*
Args
)
{
refs
:=
[]
string
{}
if
args
.
ParamsSize
()
>
1
{
refs
=
args
.
Params
[
1
:
]
}
remotes
:=
strings
.
Split
(
args
.
FirstParam
(),
","
)
args
.
ReplaceParam
(
0
,
remotes
[
0
])
if
len
(
refs
)
==
0
{
head
,
err
:=
git
.
Head
()
utils
.
Check
(
err
)
refs
=
[]
string
{
head
.
ShortName
()}
args
.
AppendParams
(
refs
...
)
}
for
_
,
remote
:=
range
remotes
[
1
:
]
{
afterCmd
:=
[]
string
{
"git"
,
"push"
,
remote
}
afterCmd
=
append
(
afterCmd
,
refs
...
)
args
.
After
(
afterCmd
...
)
}
}
commands/push_test.go
0 → 100644
浏览文件 @
dab9c5bc
package
commands
import
(
"github.com/bmizerany/assert"
"regexp"
"testing"
)
func
TestTransformPushArgs
(
t
*
testing
.
T
)
{
args
:=
NewArgs
([]
string
{
"push"
,
"origin,staging,qa"
,
"bert_timeout"
})
transformPushArgs
(
args
)
cmds
:=
args
.
Commands
()
assert
.
Equal
(
t
,
3
,
len
(
cmds
))
assert
.
Equal
(
t
,
"git push origin bert_timeout"
,
cmds
[
0
]
.
String
())
assert
.
Equal
(
t
,
"git push staging bert_timeout"
,
cmds
[
1
]
.
String
())
args
=
NewArgs
([]
string
{
"push"
,
"origin"
})
transformPushArgs
(
args
)
cmds
=
args
.
Commands
()
assert
.
Equal
(
t
,
1
,
len
(
cmds
))
pushRegexp
:=
regexp
.
MustCompile
(
"git push origin .+"
)
assert
.
T
(
t
,
pushRegexp
.
MatchString
(
cmds
[
0
]
.
String
()))
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录