背景
我们在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_repo
中的1.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兼容的所有版本。
问题
- 有没有办法将
-l
选项传递给mix.exsdeps
函数 - 如果没有,我还有什么其他选择
是否有方法将
-l
选项传递给mix.exs
deps函数?
我不知道。
如果没有,我还有什么其他选项?
我要么向mix
核心提出PR,要么只引入您自己的Mix.SCM
实现,以及现有的git
和path
,这将是Mix.SCM.Git
的精确复制粘贴,但允许/硬编码-l
选项。