Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
github
hub
提交
54238f14
H
hub
项目概览
github
/
hub
9 个月 前同步成功
通知
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 搜索 >>
未验证
提交
54238f14
编写于
4月 14, 2019
作者:
M
Mislav Marohnić
提交者:
GitHub
4月 14, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #2111 from github/git-global-beforeafter
Propagate global git arguments to Before/After chains
上级
61f6bfdd
d8973922
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
30 addition
and
2 deletion
+30
-2
commands/args.go
commands/args.go
+17
-2
commands/args_test.go
commands/args_test.go
+13
-0
未找到文件。
commands/args.go
浏览文件 @
54238f14
...
...
@@ -59,13 +59,28 @@ func (a *Args) Replace(executable, command string, params ...string) {
}
func
(
a
*
Args
)
Commands
()
[]
*
cmd
.
Cmd
{
result
:=
a
.
beforeChain
result
:=
[]
*
cmd
.
Cmd
{}
appendFromChain
:=
func
(
c
*
cmd
.
Cmd
)
{
if
c
.
Name
==
"git"
{
ga
:=
[]
string
{
c
.
Name
}
ga
=
append
(
ga
,
a
.
GlobalFlags
...
)
ga
=
append
(
ga
,
c
.
Args
...
)
result
=
append
(
result
,
cmd
.
NewWithArray
(
ga
))
}
else
{
result
=
append
(
result
,
c
)
}
}
for
_
,
c
:=
range
a
.
beforeChain
{
appendFromChain
(
c
)
}
if
!
a
.
noForward
{
result
=
append
(
result
,
a
.
ToCmd
())
}
for
_
,
c
:=
range
a
.
afterChain
{
appendFromChain
(
c
)
}
result
=
append
(
result
,
a
.
afterChain
...
)
return
result
}
...
...
commands/args_test.go
浏览文件 @
54238f14
...
...
@@ -119,3 +119,16 @@ func TestArgs_GlobalFlags_Replaced(t *testing.T) {
assert
.
Equal
(
t
,
"open"
,
cmd
.
Name
)
assert
.
Equal
(
t
,
[]
string
{
"-a"
,
"http://example.com"
},
cmd
.
Args
)
}
func
TestArgs_GlobalFlags_BeforeAfterChain
(
t
*
testing
.
T
)
{
args
:=
NewArgs
([]
string
{
"-c"
,
"key=value"
,
"-C"
,
"dir"
,
"status"
})
args
.
Before
(
"git"
,
"remote"
,
"add"
)
args
.
After
(
"git"
,
"clean"
)
args
.
After
(
"echo"
,
"done!"
)
cmds
:=
args
.
Commands
()
assert
.
Equal
(
t
,
4
,
len
(
cmds
))
assert
.
Equal
(
t
,
"git -c key=value -C dir remote add"
,
cmds
[
0
]
.
String
())
assert
.
Equal
(
t
,
"git -c key=value -C dir status"
,
cmds
[
1
]
.
String
())
assert
.
Equal
(
t
,
"git -c key=value -C dir clean"
,
cmds
[
2
]
.
String
())
assert
.
Equal
(
t
,
"echo done!"
,
cmds
[
3
]
.
String
())
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录