Skip to content

Commit 3025d63

Browse files
committed
Refactor internal references to minimum Git versions
1 parent a4530c4 commit 3025d63

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

lib/mix/lib/mix/scm/git.ex

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,8 +180,11 @@ defmodule Mix.SCM.Git do
180180
end
181181
end
182182

183+
@min_git_version_sparse {1, 7, 4}
184+
@min_git_version_progress {1, 7, 1}
185+
183186
defp check_sparse_support(version) do
184-
ensure_feature_compatibility(version, {1, 7, 4}, "sparse checkout")
187+
ensure_feature_compatibility(version, @min_git_version_sparse, "sparse checkout")
185188
end
186189

187190
defp ensure_feature_compatibility(version, required_version, feature) do
@@ -194,7 +197,7 @@ defmodule Mix.SCM.Git do
194197
end
195198

196199
defp progress_switch(version) do
197-
if {1, 7, 1} <= version, do: ["--progress"], else: []
200+
if @min_git_version_progress <= version, do: ["--progress"], else: []
198201
end
199202

200203
defp tags_switch(nil), do: []
@@ -330,9 +333,16 @@ defmodule Mix.SCM.Git do
330333
end
331334
end
332335

333-
# Also invoked by lib/mix/test/test_helper.exs
336+
# Invoked by lib/mix/test/test_helper.exs
334337
@doc false
335-
def git_version do
338+
def unsupported_options do
339+
git_version = git_version()
340+
341+
[]
342+
|> Kernel.++(if git_version < @min_git_version_sparse, do: [:sparse], else: [])
343+
end
344+
345+
defp git_version do
336346
case Mix.State.fetch(:git_version) do
337347
{:ok, version} ->
338348
version

lib/mix/test/test_helper.exs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,12 @@ Application.put_env(:logger, :backends, [])
2222

2323
os_exclude = if match?({:win32, _}, :os.type()), do: [unix: true], else: [windows: true]
2424
epmd_exclude = if match?({:win32, _}, :os.type()), do: [epmd: true], else: []
25-
git_exclude = if Mix.SCM.Git.git_version() <= {1, 7, 4}, do: [git_sparse: true], else: []
25+
26+
git_exclude =
27+
Mix.SCM.Git.unsupported_options()
28+
|> Enum.map(fn
29+
:sparse -> {:git_sparse, true}
30+
end)
2631

2732
{line_exclude, line_include} =
2833
if line = System.get_env("LINE"), do: {[:test], [line: line]}, else: {[], []}

0 commit comments

Comments
 (0)