存储库如何镜像已知的全套 Git 存储库? 当我们使用 '--mirror' 作为 repo init 命令的参数时,repo 会将所有可能的 git 存储库克隆到本地。
我想知道 repo 是如何知道全套 git 存储库的?如果从 manifest.git 的一个分支中删除了 git 存储库,存储库镜像命令如何识别它?
谢谢!
repo sync .. --mirror
命令不知道镜像存储库的多个分支。请参阅回购贡献者之一 Shawn Pearce(关于 2009 年镜像行为(的答案,通过查看代码仍然成立。
它是否从主分支获取最近提交中的所有树?
是的
或者它是否也镜像可以在不同分支或较旧的提交中引用的树?
不,它不做任何这些。
顺便说一下,至少 AOSP 和世系镜像清单存储库仅提供一个分支。
如果没有给出其他文件名,则default.xml
保存存储库(读取"项目"(,然后与其中的refs/tags/* refs/heads/*
进行镜像 - 克隆时的所有标记和分支。
一个反例是供应商二进制 blob 的 Muppets 清单存储库。它在编写时提供了一个default.xml
,其中包含适合其master
和mirror
分支中的镜像的项目列表以及用于重新生成文件的脚本。为了避免混淆存储库角色,他们最好在TheMuppets/mirror
单独提供此功能。