繁体   English   中英

如何在 mix.exs 中使用带有语义版本控制的 Git 标签?

[英]How to use Git tags with semantic versioning in mix.exs?

背景

我们在git中有一个使用标签的私有存储库。 在我们的mix.exs我们有以下内容:

  defp deps do
    [
      { :plug,    "~> 1.0"  },
      { :my_repo, git: "git@github.com:my_company/my_repo.git", tag: "1.0.0"  }
    ]
  end

现在,如果我只想要来自:my_repo1.0.0版,那很好。 但是,如果我想要任何与 1.0.0 兼容的版本会怎样? 原始文档似乎没有用于此的选项标志:

https://hexdocs.pm/mix/Mix.Tasks.Deps.html

问题

这就是发生在{ :plug, "~> 1.0" },事情。 在这里我说“提供与此兼容的任何 1.X 版本”。

对于 git repos,我想要同样的东西。 检查 git 文档后,我知道使用-l命令可以做到这一点:

https://git-scm.com/book/en/v2/Git-Basics-Tagging

git tag -l "1.8.5*"将返回与 1.8.5 兼容的所有版本。

问题

  1. 有没有办法将-l选项传递给 mix.exs deps函数?
  2. 如果没有,我还有什么其他选择?

有没有办法将-l选项传递给mix.exs deps 函数?

不是我所知道的。

如果没有,我还有什么其他选择?

我要么提出一个 PR 来mix核心,要么只引入你自己的Mix.SCM实现,以及现有的gitpath ,这将是Mix.SCM.Git的精确复制粘贴,但允许 / Mix.SCM.Git -l选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM