Carthage:如何获取给定存储库的最新版本?

Posted

技术标签:

【中文标题】Carthage:如何获取给定存储库的最新版本?【英文标题】:Carthage: How to get the very latest version of a given repository? 【发布时间】:2015-10-06 05:33:48 【问题描述】:

Cartfile 文档做出断言:

如果没有给出版本要求,则允许任何版本的依赖。

有矛盾的例子:

# Use the latest version
github "jspahrsummers/xcconfigs"

另外,没有说明,但是通过测试,我推断“latest”其实就是latest标签的版本。这种解释正确吗?如果是这样,如何指定最新的提交 - 您是否必须手动检查并指定最新的提交,还是有更简单的方法?

【问题讨论】:

【参考方案1】:

documentation 状态

Carthage 支持多种版本要求:

>= 1.0 表示“至少版本 1.0” ~> 1.0 表示“与 1.0 版兼容” == 1.0 表示“完全是 1.0 版” 针对特定 Git 对象的“some-branch-or-tag-or-commit”(git rev-parse 允许的任何内容)

所以我相信

github "jspahrsummers/xcconfigs" "HEAD"

应该按预期工作,因为“HEAD”是git rev-parse 的有效参数

或者

github "jspahrsummers/xcconfigs" "master"

或任何其他分支

【讨论】:

确实如此,而且是最好的答案。一旦禁运解除,我会这样标记。 - 谢谢。 github "eonist/swift-utils" "39c35f4" 添加到购物车文件对我有用。 39c35f4 将是最新提交的 id 你可以使用 github "eonist/swift-utils" "develop" "39c35f4" 吗?嗨@Eonist :) 编辑:实际上你可以在不指定分支的情况下做到这一点,它会自己找到它 如果 Cartfile 的目标是 master 以外的分支,是否可以进行版本控制?如果是,Cartfile 本身是如何实现的,repo 需要支持什么才能使其成为可能?【参考方案2】:

只需github "jakecraige/RGB" 就会大喊No tagged versions found for github "jakecraige/RGB"

最好使用github "jakecraige/RGB" "master"

您可能想阅读Carthage Tutorial: Getting Started

分支名称/标签名称/提交名称的意思是“使用这个特定的git分支/标签/提交”。例如,您可以指定 master,或者一个提交有 5c8a74a。

【讨论】:

【参考方案3】:

mdiep 在 Carthage 的 github 页面上回答了这个问题:

最新版本是指具有实际版本的东西——发布或标签。如果你想要最新的提交,你需要指定你想要固定到的分支。

【讨论】:

【参考方案4】:

只需留下版本号。我的看起来像这样,它可以工作:

github "Alamofire/Alamofire"
github "auth0/JWTDecode.swift"

【讨论】:

这是不正确的。 docs 表示“如果没有给出版本要求,则允许任何版本的依赖项” 这是可以接受的,如果框架提供者在存储库中标记了版本,符合语义版本规范。 不,这是不可接受的。他要求的是最新版本,而不是最新版本。如果您正在开发框架,那么每次提交都发布一个版本是很疯狂的。

以上是关于Carthage:如何获取给定存储库的最新版本?的主要内容,如果未能解决你的问题,请参考以下文章

sh 删除已停止的Docker容器,未标记且不是给定存储库的最新Docker镜像

如何通过 Web 视图浏览 Subversion 存储库的旧版本?

Android 中获取某个 dependencies 依赖库的最新版本小技巧

Android 中获取某个 dependencies 依赖库的最新版本小技巧

如何从 Maven 存储库中找到最新版本的工件

使用 Nexus rest API 获取给定 groupid/artifactId 的最新工件版本