gpt4 book ai didi

git - 如何使用 gitweb 确定子模块 SHA-1?

转载 作者:太空狗 更新时间:2023-10-29 13:46:26 24 4
gpt4 key购买 nike

我想在不克隆任何东西的情况下确定子模块的关联 SHA-1 - 即远程。 git-ls-remote 不显示此信息,所以我最初的方法是从 gitweb 中抓取 XHTML 并从那里提取 SHA-1。

不幸的是,gitweb 似乎对子模块的支持很差,在尝试查看关联路径的历史记录时显示 404 和 500“未知对象”错误。因此,我似乎无法确定子模块的关联 SHA-1,除非我可以确定修改 git-link 的确切提交,然后解析差异,例如:

-Subproject commit 706187649544cb029b617548771fe96c1693be39
+Subproject commit f05b9854fca9a2e1f47449e563a33156c1085646

不幸的是,gitweb 的子模块太多了,我无法找到一种方法来确定哪个提交包含这个差异,所以除非我对每个提交进行详尽的搜索,否则这是不行的。

我已经尝试使用与 git 1.6.4.2 和 1.6.6.1(最新稳定版)捆绑在一起的 gitweb。

任何人都可以想到一个解决方案,或者一个替代方法来执行此操作而无需克隆每个存储库。你看,我想对我们组织中的所有存储库以及每个存储库中的每个分支执行此操作,这是很多分支。我这样做是为了获取所有子模块提交的列表,并确定是否有任何内容已过时。

如果唯一的解决方案是单独克隆每个存储库并在其中运行查询,那么就只能这样了。不幸的是,我们的一些存储库非常大,因此这会使整个操作非常缓慢。

最佳答案

我不确定它是否会给你想要的答案:

查看 gitweb1 中的“树” View ,查找包含子模块的目录(这可能是您存储库的顶级目录)。您可以通过将 m-------- 作为模式字符串来识别子模块。对于每个子模块,您应该有“历史”链接,您可以在其中列出所有更改给定子模块的提交。 (这至少需要 git 版本 1.5.3 的 gitweb)。

我认为 gitweb 中缺乏更好的子模块支持是因为很难检测子模块的存储库(git_dir)在哪里。

HTH

脚注:
1. 如果您提供了 gitweb 安装的链接,如果它可以公开,将会有所帮助。

关于git - 如何使用 gitweb 确定子模块 SHA-1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2204415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com