h1. Source code repositories h2. Pushing mirrors with SSH access If you have SSH access, you can then clone the git repository directly on the server. This is way faster than having to push the code from a slow ADSL connection for instance. # Check the LineageOS manifest for newly added repos # If there are any, add them in the LineageOS-mirror manifest and push the changes to git.replicant.us # If there are any, create the newly added repos in the LineageOS-mirror group (using the exact same names the repos have in LineageOS)
# sudo -iu git $ cd repositories/LineageOS-mirror/ $ git clone --mirror git://github.com/LineageOS/h2. Pushing the code without SSH Replicant uses gitolite to handle git access. h3. Creating repositories If you don't already have the right to create repositories in the group you want to push to, this can be done with someone with SSH access to the git server:.git $ cd .git $ touch git-daemon-export-ok
sudo -iu git mkdir repositories// .git cd repositories/ / .git git --bare init touch git-daemon-export-ok
ssh://git@git.replicant.us/gitolite-adminExamples of push URL can be found in the various repositories in cgit. For instance for "omap-usb-boot":https://git.replicant.us/contrib/PaulK/omap-usb-boot/ we can see the following URL:
ssh://git@git.replicant.us/PaulK/omap-usb-booth2. cgit Once the git repository is setup either by mirroring it with SSH or by setting it up in the normal way, you still need to configure cgit to make the repository appear on the cgit web interface. See the [[Cgit]] wiki page for where to adjust its configuration. h3. Bundles It's worth to check if all mirror repos have bundles in place. TODO: Document how to create bundles. So far the LineageOS mirror has bundles but not AOSP mirror. h3. CAF variants If we ever add support for a device that uses CAF branches of Qualcomm repos, we need to figure out how the mirror can still be updated and how releases can be tagged. CAF branches are in the same repos as the default branches. So two or more local repos are created for one remote repo when the default branch and the CAF branches are checked out. The current setup for tagging a new release and updating the mirror assumes that there is one local repo for one remote repo.