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 依赖库的最新版本小技巧