将Android源克隆到本地存储库服务器

| 我想使用本地Android存储库服务器在Android之上进行开发。我需要向git的层次结构中添加几个新的git存储库,并且需要修改现有的android源以进行定制的Android定制。 克隆整个git存储库的整个Android源代码树的“正确”方法是什么,以便我可以向/从通用本地存储库服务器推入/拉出,并且仍然可以轻松地从Android上游拉出新更改? 我特别在寻求有关如何使用
repo
脚本与我自己的服务器进行交互以及如何设置
manifest
git存储库和管理其中的分支的建议。     
已邀请:
在您的git服务器上 回购init -u https://android.googlesource.com/platform/manifest --mirror#--mirror是关键 回购同步 因为您指定了--mirror,所以所有创建的存储库都是\'bare \'存储库,这是创建镜像的git-correct方法,除非您是git uberlord。 在您的客户上: repo init -u git@git.yourserver.com:platform / manifest.git#您可以使用其他方式访问git服务器;在这个例子中,我必须假设一些东西。 没有回购同步。您的清单可能是错误的。查看符号链接的.repo / manifest.xml ...,将其收起来,并在顶部阅读
<remote fetch=\"\"
...它可能指向android.googlesource.com。但是如果它显示为'.. \',则表示\'回到我的服务器\',因此您可以跳到步骤6)。但是,如果确实指向其他服务器(而不是您的服务器),请转到步骤3。 cd .repo /清单 vim .repo / manifests / default.xml(或任何活动的manifest.xml是)。 修复default.xml的ѭ3指向您的git服务器 尝试回购同步。它只能从您的存储库中提取。如果不是,请停止回购同步,然后再次尝试修复default.xml。 一旦看到测试机上的repo sync工作正常,请再次提交default.xml(
git commit; git push
),以便团队中的其他人从服务器上
repo init; repo sync
时将具有“无清单编辑”的经验。 一旦看到“没有清单编辑”ѭ5的工作,然后再次转到default.xml,并开始添加新的XML元素以及大量其他现有的Android项目元素;这些新元素将指向您的自定义项目。对于这些新项目,只需像往常一样git初始化它们,并确保它们具有匹配相同的
<default revision=\"whatever_branch_you_see_here\"
的分支,以便a8ѭ在遇到这些新项目时将成功。 如果确实在清单
<default revision=\"\"
元素中设置了默认分支,那么只需让每个人都设置一个本地分支来遵循修订属性中指定的远程分支即可。因此,例如,如果清单中有“ 10”,则在执行回购同步后,当您进入感兴趣的子项目时,请执行以下操作:
git checkout -b branch_a origin/branch_a
然后,如果用户使用
git push
(据我所知,没有要推送的repo命令),并且如果其他人在该推送后执行了
./repo sync
,他们将从原始用户那里得到这些更改。只要您使用相同的清单,并实际推送到该清单指定的默认修订版(分支)。 那是最简单的食谱。如果您想创建实际的功能分支,那么如果您想“重新同步”才能正常工作,则必须更定期地编辑清单...,并且必须与团队的其他成员进行交流以获取您执行清单时的版本。或者,如果您只是触摸一个或两个git repos,则可以像在这些repos上一样正常地放弃repo sync和git push / pull,并在进行大量迭代时忽略静默树的其余部分。最终,对我来说,这听起来像一条更简单的道路。我会尽可能地忽略回购;仅将其用于“所有项目”同步,而在您专注于1个或2个项目时,则不使用它。 关于从上游获取更新。我认为这样做的方法是将default.xml更改为指向原始git位置(例如android.googlesource.com),进行回购同步以使所有新内容合并,并在完成后同步,提交回您的仓库。我还没做所以我不能太具体,但这就是我计划的方式。 我忽略了上面的服务器管理详细信息。例如,您需要在git服务器上的某个目录中调用repo init,以使其成为可用的git存储库;我假设您知道如何管理git服务器。     

要回复问题请先登录注册