android - 需要帮助找到 repo 策略(工具)

标签 android git branch repository

我正在为多媒体机顶盒制作冰冻图像。原始图像带有一个定制的 mplayer,它具有对 SoC 的硬件支持。 Android 多媒体框架(音频/视频)被完全绕过,所有播放都是通过这个 mplayer 完成的。更糟糕的是,mplayer 是用 OSS 而不是 ALSA 编译的。我的中期目标是,在 android 平台上集成支持 dmix 的 alsa,并编译支持 alsa 的 mplayer,以便 android 和 mplayer 可以同时播放。

与此同时,我想更改原始图像上的较小部分(主要是 UI、UX)。所以我想有两个分支。一张用于原始和略微改进的图像,一张用于更大的 alsa 更改。 alsa 分支会有一些其他的 git 存储库而不是原来的存储库,例如 alsa 东西。此外,一些 git 项目可能需要有自己的分支来实现 alsa(mplayer 用于 alsa 输出,bionic 用于共享内存等)。 因此,要在原始分支和 alsa 分支之间切换,我必须切换一些 git 存储库的分支,并且会有一些存储库是 alsa 分支独有的。

我可以用 repo 实现吗?这只是用 repo 启动一个 alsa 主题分支的问题吗?

您能否描述一下,您将如何为此设置 android 平台?任何提示表示赞赏。

干杯, 亨里克

附言针对这种情况定义两种不同的产品是否有意义?

附言我已经在 android-porting google 组中问过这个问题:https://groups.google.com/forum/?fromgroups=#!topic/android-porting/K0JmK9HFAVw

最佳答案

在我看来,这就像是在同一产品上实现功能,而不是在不同产品上实现。

如果所有必要的 git 都在所有分支上就位,您只需将受影响的 git 指向您的 ALSA 功能的正确分支。这可以做到,例如通过在 .repo 目录中添加一个 local_manifest.xml,它看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remove-project name="platform/blah"/>
<project path="blah"
    name="platform/blah"
    revision="alsa-feature-branch"/>
</manifest>

然后您将重新同步您的存储库并在您需要进行更改的 git 中启动主题分支。

还有可能在功能完成后将更改 merge 回您的主分支(或者甚至直接在主分支上进行功能开发),并在您的产品 makefile 或 system.prop 中有一个标志 决定是否使用该功能的文件。

关于android - 需要帮助找到 repo 策略(工具),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15986406/

相关文章:

Github Windows 同步失败

java - 如何修复编写代码检查 UPC 是否有效的 java 运行时错误?

android - SurfaceView onMeasure() 没有调用setMeasuredDimension() 设置测量维度

android - 我的通知操作图标不会在 android 7 中显示

git ls-tree 工作目录的输出?

git - 非常大的 TFS 存储库——来自子文件夹的 <git tfs branch>

git - 创建 Git 分支 feature/x/y?

java - 在 RXJava android 中为线程设置名称

android - 您上传的文件不是格式正确的 zip 存档

Git Windows : Cannot clone/checkout repository paths with spaces