Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
e73af422
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
e73af422
编写于
10月 12, 2017
作者:
J
Jacob Vosmaer
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add Gitlab::Git::Env.to_env_hash
上级
1e4b75ba
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
49 addition
and
6 deletion
+49
-6
lib/gitlab/git/env.rb
lib/gitlab/git/env.rb
+11
-0
lib/gitlab/git/rev_list.rb
lib/gitlab/git/rev_list.rb
+1
-1
spec/lib/gitlab/git/env_spec.rb
spec/lib/gitlab/git/env_spec.rb
+37
-5
未找到文件。
lib/gitlab/git/env.rb
浏览文件 @
e73af422
...
...
@@ -30,6 +30,17 @@ module Gitlab
RequestStore
.
fetch
(
:gitlab_git_env
)
{
{}
}
end
def
self
.
to_env_hash
env
=
{}
all
.
compact
.
each
do
|
key
,
value
|
value
=
value
.
join
(
File
::
PATH_SEPARATOR
)
if
value
.
is_a?
(
Array
)
env
[
key
.
to_s
]
=
value
end
env
end
def
self
.
[]
(
key
)
all
[
key
]
end
...
...
lib/gitlab/git/rev_list.rb
浏览文件 @
e73af422
...
...
@@ -28,7 +28,7 @@ module Gitlab
private
def
execute
(
args
)
output
,
status
=
popen
(
args
,
nil
,
Gitlab
::
Git
::
Env
.
all
.
stringify_keys
)
output
,
status
=
popen
(
args
,
nil
,
Gitlab
::
Git
::
Env
.
to_env_hash
)
unless
status
.
zero?
raise
"Got a non-zero exit code while calling out `
#{
args
.
join
(
' '
)
}
`:
#{
output
}
"
...
...
spec/lib/gitlab/git/env_spec.rb
浏览文件 @
e73af422
require
'spec_helper'
describe
Gitlab
::
Git
::
Env
do
describe
"
#
set"
do
describe
"
.
set"
do
context
'with RequestStore.store disabled'
do
before
do
allow
(
RequestStore
).
to
receive
(
:active?
).
and_return
(
false
)
...
...
@@ -34,25 +34,57 @@ describe Gitlab::Git::Env do
end
end
describe
"
#
all"
do
describe
"
.
all"
do
context
'with RequestStore.store enabled'
do
before
do
allow
(
RequestStore
).
to
receive
(
:active?
).
and_return
(
true
)
described_class
.
set
(
GIT_OBJECT_DIRECTORY
:
'foo'
,
GIT_ALTERNATE_OBJECT_DIRECTORIES
:
'bar'
)
GIT_ALTERNATE_OBJECT_DIRECTORIES
:
[
'bar'
]
)
end
it
'returns an env hash'
do
expect
(
described_class
.
all
).
to
eq
({
'GIT_OBJECT_DIRECTORY'
=>
'foo'
,
'GIT_ALTERNATE_OBJECT_DIRECTORIES'
=>
'bar'
'GIT_ALTERNATE_OBJECT_DIRECTORIES'
=>
[
'bar'
]
})
end
end
end
describe
"#[]"
do
describe
".to_env_hash"
do
context
'with RequestStore.store enabled'
do
using
RSpec
::
Parameterized
::
TableSyntax
let
(
:key
)
{
'GIT_OBJECT_DIRECTORY'
}
subject
{
described_class
.
to_env_hash
}
where
(
:input
,
:output
)
do
nil
|
nil
'foo'
|
'foo'
[]
|
''
[
'foo'
]
|
'foo'
%w[foo bar]
|
'foo:bar'
end
with_them
do
before
do
allow
(
RequestStore
).
to
receive
(
:active?
).
and_return
(
true
)
described_class
.
set
(
key
.
to_sym
=>
input
)
end
it
'puts the right value in the hash'
do
if
output
expect
(
subject
.
fetch
(
key
)).
to
eq
(
output
)
else
expect
(
subject
.
has_key?
(
key
)).
to
eq
(
false
)
end
end
end
end
end
describe
".[]"
do
context
'with RequestStore.store enabled'
do
before
do
allow
(
RequestStore
).
to
receive
(
:active?
).
and_return
(
true
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录