android 正在将新git添加到AOSP存储库

voj3qocg  于 2022-11-03  发布在  Android
关注(0)|答案(1)|浏览(181)

我在$AOSP_ROOT/device/下创建了一个新的设备mydevice/。我尝试将git添加到$AOSP_ROOT/.repo中以进行本地跟踪,我发现如果我能在执行repo statusrepo diff时看到更改,这将非常有用。以下是我尝试的步骤:
1.在mydevice文件夹中执行git init,保留未提交的更改
1.将项目添加到$AOSP_ROOT/.repo/manifest.xml
不幸的是,当我执行repo status时,我的项目没有反映在输出中。我做错了什么?

g52tjvyc

g52tjvyc1#

假设$HOME/home/consy/,而$AOSP_ROOT/home/consy/aosp/


# init a local bare repo as the remote repo of `mydevice`

cd $AOSP_ROOT/device/
git init mydevice
git commit --allow-empty -m 'init repository'
cd $HOME
git clone $AOSP_ROOT/device --bare -- mydevice.git
cd $AOSP_ROOT/device
rm -rf mydevice

# create .repo/local_manifests (this is a feature of repo)

mkdir -p $AOSP_ROOT/.repo/local_manifests

# create a manifest under `local_manifests`.

# You can name it whatever you like except that the manifest's content should be like:

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <remote fetch="file:///home/consy/" name="this"/>
  <!-- it allows only one "default" in the manifests that take effect -->
  <!-- so, do not define the "default" element here -->
  <project name="mydevice" path="device/mydevice"/>
</manifest>

现在,当您运行repo sync时,项目在本地清单中定义的将作为额外项目添加到$AOSP_ROOT中。您可以使用repo命令(如repo status)来操作这些额外项目。存储库将从/home/consy/mydevice.git克隆并 checkout 到$AOSP_ROOT/device/mydevice。在$AOSP_ROOT/device/mydevice下进行新提交后,您可以运行git push this <ref>:<ref>将提交上传到/home/consy/mydevice.git。稍后,当您认为它已经准备好将这个新的存储库发布到一真实的主机,比如Github或者您自己的Gerrit时,您可以添加一个指向Github或Gerrit的新远程控件并通过它。然后将项目定义<project name="mydevice" path="device/mydevice"/>添加到repo init时使用的主清单中,提交更改,并将其推送到远程清单存储库。您可以删除$AOSP_ROOT/.repo/local_manifests下的本地清单以避免出现重复项目错误。
至于本地清单功能,请参见https://gerrit.googlesource.com/git-repo/+/master/docs/manifest-format.md上的Local Manifests。如果链接无法访问,请谷歌repo manifest format。该文档也可以在.repo/repo/docs下获得。

相关问题