   end
 
   def lock_status(opts) do
+    assert_git
+
     case opts[:lock] do
       {:git, lock_repo, lock_rev, lock_opts} ->
         File.cd!(opts[:dest], fn ->

  end

  def checkout(opts) do
    path     = opts[:dest]
    location = opts[:git]


    true
  end

  defp assert_git do
    case Application.fetch_env(:mix, :git_available) do
      {:ok, true} ->
        :ok
      :error ->
        if :os.find_executable('git') == false do
          Mix.raise "Git executable is not available. " <>
            "Fetching or updating Git is not possible. " <>
            "Pass --no-deps-check if you want to run your application on " <>
            "without Git."
        else
          Application.put_env(:mix, :git_available, true)
        end
    end
  end

  defp git_version do
    case Application.fetch_env(:mix, :git_version) do
      {:ok, version} ->
