标记Android版本

时间:2014-07-21 19:52:31

标签: android git tags android-source

我目前拥有自己的AOSP项目镜像。我可以手动分支一些存储库,但我不确定如何标记镜像中的所有存储库以保存发布。标记所有内容是否是一个特殊的“repo”命令?

2 个答案:

答案 0 :(得分:4)

据我所知,repo没有标记命令,但您可以使用repo forall命令:

类似的东西:

repo forall -c 'git tag TAGNAME'

应该有用。

https://source.android.com/source/using-repo.html#forall

答案 1 :(得分:0)

在你的情况下,你可能想要标记每个git并通过@ouah解答如何解答,但请参阅我关于创建带注释标签的评论。请记住,虽然标记告诉您该git中的哪个提交是发布的一部分,但您仍然不知道哪个gits包含该标记。要同步发布的完整工作区,您必须检查所有可能的gits(如果它们包含相关标记(git ls-remote应该有帮助)),并根据该信息制作清单。或者,在清单git中创建一个提交并列出那里的所有gits(以及提交的标记)。

现在,如果您打算创建数千个标记(例如,因为您有一个经常运行的CI作业,可以构建所有内容,并且您希望记录每个构建的状态),您应该认为Git在这些引用数量上效率低下。相反,创建一个包含每个git的签出提交的静态清单(repo manifest -r -o manifest.xml)可能更明智。

缺点是你不能说例如git diff your-release-1.0..HEAD但必须获取静态清单并拿起SHA-1与之进行比较(显然是一项易于自动化的任务)。好处是你可以轻松地同步一个完整的工作区,特别是如果你将静态清单文件存储在清单git中。例如,如果将它们存储在主分支中(无论它们是从哪个分支构建的),都可以使用repo init -u ... -m your-release-1.0.xml来准备工作区。