如何更新配置为 head 修订的 git 子项目?
How to update git subproject that is configured to head revision?
在 Meson 中,可以使用 wrap-files 定义子项目。 manual 显示了 wrap-git 文件的示例:
[wrap-git]
url = https://github.com/libfoobar/libfoobar.git
revision = head
我已经建立了一个本地测试项目,它建立了一个像上面的例子一样的子项目。一切正常,Meson 拉入子项目的存储库,构建它,并将其与测试项目可执行文件链接。
然而,当我将新更改推送到子项目存储库时,Meson 无法自动提取这些更改,即使在 wrap-file 中指定了 revision = head
。需要说明的是,我真的没想到这会奏效。
有效的方法是手动删除子项目的源代码,然后让 Meson 重新配置项目。这会克隆子项目存储库,从而引入更新。但遗憾的是这是手动操作...
我的问题: 在子项目的 git 包装文件中跟踪 head
修订时,如何自动提取更新?
这是预期的行为。根据 reference doc:
Once a subproject has been fetched, Meson will not update it
automatically. For example if the wrap file tracks a git branch, it
won't pull latest commits.
To pull latest version of all your subprojects at once, just run the
command:
$ meson subprojects update
如果只需要selected,在command后面加名字:
$ meson subprojects update libfoo libbar
(简而言之,更多细节在link)
在 Meson 中,可以使用 wrap-files 定义子项目。 manual 显示了 wrap-git 文件的示例:
[wrap-git]
url = https://github.com/libfoobar/libfoobar.git
revision = head
我已经建立了一个本地测试项目,它建立了一个像上面的例子一样的子项目。一切正常,Meson 拉入子项目的存储库,构建它,并将其与测试项目可执行文件链接。
然而,当我将新更改推送到子项目存储库时,Meson 无法自动提取这些更改,即使在 wrap-file 中指定了 revision = head
。需要说明的是,我真的没想到这会奏效。
有效的方法是手动删除子项目的源代码,然后让 Meson 重新配置项目。这会克隆子项目存储库,从而引入更新。但遗憾的是这是手动操作...
我的问题: 在子项目的 git 包装文件中跟踪 head
修订时,如何自动提取更新?
这是预期的行为。根据 reference doc:
Once a subproject has been fetched, Meson will not update it automatically. For example if the wrap file tracks a git branch, it won't pull latest commits.
To pull latest version of all your subprojects at once, just run the command:
$ meson subprojects update
如果只需要selected,在command后面加名字:
$ meson subprojects update libfoo libbar
(简而言之,更多细节在link)