在执行 repo 同步时,它会从分支中提取最新的提交,即使它被指定为清单 xml 文件中的特定提交。为什么会这样?
清单 xml 文件在名为 repo_example_manifest 的存储库中进行修订控制,该存储库有两个提交:
这是我在旧提交中调用 default.xml 的清单 xml 文件(标记为“v1.0”):
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="organization"
fetch="https://github.com/organization" />
<project path="bsp" name="repo_example_bsp" remote="organization" revision="master" >
</project>
<project path="app" name="repo_example_app" remote="organization" revision="d3cf9feae739666b1e302f4831eca432afd746fd" />
</manifest>
这是最新提交中的清单 xml 文件(标记为“v2.0”):
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="orgnanization"
fetch="https://github.com/orgnanization" />
<project path="bsp" name="repo_example_bsp" remote="orgnanization" revision="master" >
</project>
<project path="app" name="repo_example_app" remote="orgnanization" revision="89ba93c3ed67cc45d31aedcb9db47d3ea66fb9a1" />
</manifest>
如您所见,我只有两个使用 git-repo 管理的存储库:
- repo_example_bsp
- repo_example_app
在将 git-repo 与我公司的项目集成之前,我只是将其作为一个示例来使用它。
在存储库“repo_example_app”下,我有两个提交。最近的提交是 89ba93c3ed67cc45d31aedcb9db47d3ea66fb9a1,最早的提交是:d3cf9feae739666b1e302f4831eca432afd746fd。
当我在 repo_example_manifest 中最旧的提交(标记为“v1.0”)中时,我在 bash 中执行了以下操作:
$ repo init -u https://github.com/organization/repo_example_manifest
输出是:
Downloading manifest from https://github.com/organization/repo_example_manifest
repo has been initialized in C:\Users\Eyal\Documents\repo_example_manifest
Downloading Repo source from https://gerrit.googlesource.com/git-repo
然后我发送了命令:
repo sync
输出是:
repo sync has finished successfully.
到目前为止,一切都很好...
但是,问题是在“app”文件夹下的存储库“repo_example_app”下提取的提交是提交号 89ba93c3ed67cc45d31aedcb9db47d3ea66fb9a1,这是最新的提交,而不是 XML 文件中写入的提交 d3cf9feae739666b1e302f4831eca432afd746fd。
有人可以向我解释我在这里做错了什么吗?