Skip to content

Commit 4ca1736

Browse files
committed
Accept more forms of git versions
Fixes the parsing of “git version 1.9.3 (Apple Git-50)”. Closes #2653.
1 parent fd85ca4 commit 4ca1736

File tree

4 files changed

+25
-13
lines changed

4 files changed

+25
-13
lines changed

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

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -183,14 +183,26 @@ defmodule Mix.SCM.Git do
183183
{:ok, version} ->
184184
version
185185
:error ->
186-
"git version " <> version = String.strip IO.iodata_to_binary :os.cmd('git --version')
187186
version =
188-
String.split(version, ".")
189-
|> Enum.take(3)
190-
|> Enum.map(&String.to_integer(&1))
191-
|> List.to_tuple
187+
:os.cmd('git --version')
188+
|> IO.iodata_to_binary
189+
|> String.strip
190+
|> parse_version
191+
192192
Application.put_env(:mix, :git_version, version)
193193
version
194194
end
195195
end
196+
197+
defp parse_version("git version " <> version) do
198+
String.split(version, ".")
199+
|> Enum.take(3)
200+
|> Enum.map(&to_integer/1)
201+
|> List.to_tuple
202+
end
203+
204+
defp to_integer(string) do
205+
{int, _} = Integer.parse(string)
206+
int
207+
end
196208
end

lib/mix/lib/mix/tasks/escript.build.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ defmodule Mix.Tasks.Escript.Build do
108108

109109
case :zip.create 'mem', tuples, [:memory] do
110110
{:ok, {'mem', zip}} ->
111-
shebang = escript_opts[:shebang] || "#! /usr/bin/env escript\n"
111+
shebang = escript_opts[:shebang] || "#! /usr/bin/env escript\n"
112112
comment = build_comment(escript_opts[:comment])
113113
emu_args = build_emu_args(escript_opts[:emu_args], escript_mod)
114114

lib/mix/lib/mix/tasks/loadpaths.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ defmodule Mix.Tasks.Loadpaths do
66
77
## Command line options
88
9-
* `--no-deps-check` - do not check depednecnies
9+
* `--no-deps-check` - do not check dependencies
1010
* `--no-elixir-version-check` - do not check elixir version
1111
1212
"""

lib/mix/lib/mix/tasks/new.ex

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -205,13 +205,13 @@ defmodule Mix.Tasks.New do
205205
<%= @otp_app %>
206206
end
207207
208-
# Dependencies can be hex.pm packages:
208+
# Dependencies can be Hex packages:
209209
#
210210
# {:mydep, "~> 0.3.0"}
211211
#
212212
# Or git/path repositories:
213213
#
214-
# {:mydep, git: "https://github.com/elixir-lang/mydep.git", tag: "0.1"}
214+
# {:mydep, git: "https://github.com/elixir-lang/mydep.git", tag: "0.1.0"}
215215
#
216216
# Type `mix help deps` for more examples and options
217217
defp deps do
@@ -240,13 +240,13 @@ defmodule Mix.Tasks.New do
240240
<%= @otp_app %>
241241
end
242242
243-
# Dependencies can be hex.pm packages:
243+
# Dependencies can be Hex packages:
244244
#
245245
# {:mydep, "~> 0.3.0"}
246246
#
247247
# Or git/path repositories:
248248
#
249-
# {:mydep, git: "https://github.com/elixir-lang/mydep.git", tag: "0.1"}
249+
# {:mydep, git: "https://github.com/elixir-lang/mydep.git", tag: "0.1.0"}
250250
#
251251
# To depend on another app inside the umbrella:
252252
#
@@ -268,13 +268,13 @@ defmodule Mix.Tasks.New do
268268
deps: deps]
269269
end
270270
271-
# Dependencies can be hex.pm packages:
271+
# Dependencies can be Hex packages:
272272
#
273273
# {:mydep, "~> 0.3.0"}
274274
#
275275
# Or git/path repositories:
276276
#
277-
# {:mydep, git: "https://github.com/elixir-lang/mydep.git", tag: "0.1"}
277+
# {:mydep, git: "https://github.com/elixir-lang/mydep.git", tag: "0.1.0"}
278278
#
279279
# Type `mix help deps` for more examples and options.
280280
#

0 commit comments

Comments
 (0)