Gitolite + repo 搭建安卓源码开发环境

转载请注明出处:http://blog.csdn.net/u011479494/article/details/50629669

相比gitosis,gitolite的功能更为强大,支持对权限的细分控制,下面在最新版 的ubuntu 14.04 LTS中搭建gitolite服务器。

一、安装准备
1.服务器安装openssh

sudo apt-get -y install openssh-server openssh-client

2.在一台管理客户机上生成ssh公钥【客户机执行】

 ssh-keygen -t rsa

生成的公钥在/home/xia/.ssh/里面,默认名字是id_rsa.pub。

3.安装git,在这个核心软件,不可或缺。

sudo apt-get -y install git

二、安装gitolite
在ubuntu中已经集成了,不用自己去下载。

sudo apt-get -y install gitolite

三、配置gitolite
1.创建用户gitolite【服务器执行】
添加gitolite用户和同名用户组,加上–system参数,用户就不会在登陆界面显示。

sudo adduser --system --shell /bin/sh --group --disabled-password --home /home/gitolite gitolite

2.把管理客户机生成的公钥上传到服务器上【客户机执行】

scp ~/.ssh/id_rsa.pub berry@192.168.100.249:/tmp

3.初始化配置【服务器执行】
切换到gitolite用户环境中,因为我要以gitolite用户身份去初始化安装。

sudo chmod 777 /tmp/id_rsa.pub
mv /tmp/id_rsa.pub /tmp/xia.pub
sudo su - gitolite
gl-setup /tmp/xia.pub

以上命令有两个个作用:
a)建立一个目录“~/repositories”,用来存储所有git仓库;
b)把公钥文件id_rsa.pub添加到 ~/.ssh/authorized_keys。

4.修改配置文件
gitolite的配置文件本身就是一个git仓库,gitolite的配置修改就是通过git实现的,先clone下来修改,再push上去。只要push上去,gitolite会立刻监视到配置文件的修改并应用。
在管理客户端clone管理库到本地:git clone gitolite@192.168.100.249:gitolite-admin.git
或者git clone ssh://gitolite@192.168.100.249/gitolite-admin.git
clone下来以后,库里有一个文件夹conf,里面存储的是gitolite.conf(配置文件);还有一个文件夹keydir,里面存储的是用户的公钥文件,当前里面就有在管理客户端上生成的私钥(格式是”用户名.pub”,例如“xia.pub”)。

四、添加用户和仓库
添加新仓库也非常简单,假设你要添加一个叫lv@example.com的用户,再创建一个仓库叫testing,并赋给lv修改权限。
【在lv私钥计算机上操作】
1.首先ssh-keygen生成lv的公钥和私钥;
【在xia私钥计算机上操作】
2.把lv公钥(lv.pub)拷贝到本地gitolite-admin库的keydir里面;
3.编辑本地gitolite-admin库里的conf下的gitolite.conf,添加:

repo    gitolite-admin
        RW+     =   xia

repo    testing
        RW+     =   @all
+
+repo    test
+        RW+     =   lv

4.commit修改,push到服务器生效。服务端自动创建空的test.git工程仓库。

Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 356 bytes | 0 bytes/s, done.
Total 4 (delta 1), reused 0 (delta 0)
remote: creating test...
remote: Initialized empty Git repository in /home/gitolite/repositories/test.git/
To ssh://gitolite@192.168.100.249/gitolite-admin.git
   b5e8b3d..be1d3f1  master -> master

5.初始化仓库并push到服务器
【在lv私钥计算机上操作】

git clone ssh://gitolite@192.168.100.249/test.git
或者:git clone gitolite@192.168.100.249:test.git
cd test
echo "init commit" > readme.txt
git add .
git commit -m "init commit"
git push origin master

6.添加一个存在的Git项目
如果你有一个已经存在的项目,也想将其添加到Gitolite的服务器里。首先你依然需要在gitolite.conf里注册这个项目。然后执行下面的操作:

cd test
git remote rm origin
git remote add origin gitolite@192.168.100.249:test.git
git push origin master

如果你有多个branch,那么checkout到那个branch,执行

git push origin <branch-name>

五、搭建 Android repo 管理 服务器
1.搭建 git-daemon
(1)安装git-daemon-sysvinit

sudo apt-get install git-daemon-sysvinit

(2)配置 /etc/default/git-daemon

sudo vi /etc/default/git-daemon 
# Defaults for git-daemon initscript
# sourced by /etc/init.d/git-daemon
# installed at /etc/default/git-daemon by the maintainer scripts

#
# This is a POSIX shell fragment
#

GIT_DAEMON_ENABLE=true
GIT_DAEMON_USER=gitolite
GIT_DAEMON_BASE_PATH=/home/gitolite/repositories
GIT_DAEMON_DIRECTORY=/home/gitolite/repositories

# Additional options that are passed to the Daemon.
GIT_DAEMON_OPTIONS="--export-all --enable=upload-pack --enable=upload-archive --enable=receive-pack --informative-errors"

配置分析:
1)GIT_DAEMON_ENABLE=true 很明显得设置成true值了 。
2)GIT_DAEMON_USER=gitolite 表示使用哪个用户运行git-daemon。
注意:设置的这个用户一定得对GIT_DAEMON_BASE_PATH有读,写,执行的所有权限!
3)GIT_DAEMON_BASE_PATH=/home/gitolite/repositories 设置根目录。
比如像我的这个设置,那么你在用git clone gitolite://192.168.100.249/test.git时,git服务器就会查找/home/gitolite/repositories/test.git目录了。
4)GIT_DAEMON_DIRECTORY=/home/gitolite/repositories 这个是设置成目录白名单whitelist。
如果不设置的话用户在git操作时如git clone,git push等等会出现no such directory。而在服务器机器上/var/log/syslog中会看到’/home/gitolite/repositories/xxx.git’: not in whitelist 。
5)GIT_DAEMON_OPTIONS=”–export-all –enable=upload-pack –enable=upload-archive –enable=receive-pack –informative-errors” 设置参数。
如果想上传,且全部导出,就设置–export-all –enable=upload-pack –enable=upload-archive –enable=receive-pack 。
注意:如果出现找不到的话,就在/home/gitolite/repositories目录下面的项目仓库目录下touch git-daemon-export-ok,生成一个这个名字的文件即可。
如果想使用git push功能,那一定要打开–enable=receive-pack 。

以上设置好了只后,,那么每次开机就会自己启动了。
还可以使用sudo service git-daemon start|restart|stop控制。
sudo /etc/init.d/git-daemon start|restart|stop也可以了。

2.添加manifest.git仓库
1)【在xia私钥计算机上操作】
编辑本地gitolite-admin库里的gitolite.conf,添加:

repo    manifest
        RW+     =   xia

commit修改,push到服务器生效。
2)下载manifest.git到本地

git clone gitolite@192.168.100.249:manifest.git

3)添加dfault.xml
这个文件是跟这个Android 源码 配套的,没有自己可以参考别人的创建一个,
path 表示客户端本地路径,使用 cat default.xml | cut -d ‘”’ -f 2 提取,
name 表示服务端远程路径,使用 cat default.xml | cut -d ‘”’ -f 4 提取。

<?xml version="1.0" encoding="UTF-8"?>
<manifest>

  <remote  name="yazuo"
           fetch=".."
           review="ssh" />
  <default revision="master"
           remote="yazuo"
           sync-j="1" />

  <project path="build" name="yazuo/platform/build"  >
    <copyfile src="core/root.mk" dest="Makefile" />
  </project>
  <project path="abi/cpp" name="yazuo/platform/abi/cpp"  />
  <project path="art" name="yazuo/platform/art" />
  <project path="bionic" name="yazuo/platform/bionic"  />
  <project path="bootable/bootloader/lk" name="yazuo/platform/bootable/bootloader/lk" />
  <project path="bootable/diskinstaller" name="yazuo/platform/bootable/diskinstaller" />
  <project path="bootable/recovery" name="yazuo/platform/bootable/recovery"  />
  <project path="cts" name="yazuo/platform/cts"  />
  <project path="dalvik" name="yazuo/platform/dalvik" />
  <project path="developers/build" name="yazuo/platform/developers/build" />
  <project path="developers/samples/android" name="yazuo/platform/developers/samples/android" />
  <project path="development" name="yazuo/platform/development" />
  <project path="device/asus/deb" name="yazuo/device/asus/deb"  />
  <project path="device/asus/flo" name="yazuo/device/asus/flo"  />
  <project path="device/asus/flo-kernel" name="yazuo/device/asus/flo-kernel"  />
  <project path="device/asus/grouper" name="yazuo/device/asus/grouper"  />
  <project path="device/asus/tilapia" name="yazuo/device/asus/tilapia"  />
  <project path="device/common" name="yazuo/device/common" />
  <project path="device/generic/armv7-a-neon" name="yazuo/device/generic/armv7-a-neon"  />
  <project path="device/generic/common" name="yazuo/device/generic/common"  />
  <project path="device/generic/goldfish" name="yazuo/device/generic/goldfish"  />
  <project path="device/generic/mips" name="yazuo/device/generic/mips"  />
  <project path="device/generic/mini-emulator-armv7-a-neon" name="yazuo/device/generic/mini-emulator-armv7-a-neon"  />
  <project path="device/generic/mini-emulator-mips" name="yazuo/device/generic/mini-emulator-mips"  />
  <project path="device/generic/mini-emulator-x86" name="yazuo/device/generic/mini-emulator-x86"  />
  <project path="device/generic/x86" name="yazuo/device/generic/x86"  />
  <project path="device/google/accessory/arduino" name="yazuo/device/google/accessory/arduino"  />
  <project path="device/google/accessory/demokit" name="yazuo/device/google/accessory/demokit"  />
  <project path="device/lge/hammerhead" name="yazuo/device/lge/hammerhead"  />
  <project path="device/lge/hammerhead-kernel" name="yazuo/device/lge/hammerhead-kernel"  />
  <project path="device/lge/mako" name="yazuo/device/lge/mako"  />
  <project path="device/lge/mako-kernel" name="yazuo/device/lge/mako-kernel"  />
  <project path="device/sample" name="yazuo/device/sample"  />
  <project path="device/samsung/manta" name="yazuo/device/samsung/manta"  />
  <project path="docs/source.android.com" name="yazuo/platform/docs/source.android.com" />
  <project path="external/aac" name="yazuo/platform/external/aac"  />
  <project path="external/android-clat" name="yazuo/platform/external/android-clat" />
  <project path="external/android-mock" name="yazuo/platform/external/android-mock" />
  <project path="external/ant-glob" name="yazuo/platform/external/ant-glob" />
  <project path="external/antlr" name="yazuo/platform/external/antlr" />
  <project path="external/apache-harmony" name="yazuo/platform/external/apache-harmony" />
  <project path="external/apache-http" name="yazuo/platform/external/apache-http" />
  <project path="external/apache-xml" name="yazuo/platform/external/apache-xml" />
  <project path="external/arduino" name="yazuo/platform/external/arduino" />
  <project path="external/bison" name="yazuo/platform/external/bison"  />
  <project path="external/blktrace" name="yazuo/platform/external/blktrace" />
  <project path="external/bluetooth/bluedroid" name="yazuo/platform/external/bluetooth/bluedroid"  />
  <project path="external/bouncycastle" name="yazuo/platform/external/bouncycastle" />
  <project path="external/bsdiff" name="yazuo/platform/external/bsdiff"  />
  <project path="external/bzip2" name="yazuo/platform/external/bzip2"  />
  <project path="external/ceres-solver" name="yazuo/platform/external/ceres-solver" />
  <project path="external/checkpolicy" name="yazuo/platform/external/checkpolicy"  />
  <project path="external/chromium" name="yazuo/platform/external/chromium" />
  <project path="external/chromium-libpac" name="yazuo/platform/external/chromium-libpac" />
  <project path="external/chromium-trace" name="yazuo/platform/external/chromium-trace"  />
  <project path="external/chromium_org" name="yazuo/platform/external/chromium_org" />
  <project path="external/chromium_org/sdch/open-vcdiff" name="yazuo/platform/external/chromium_org/sdch/open-vcdiff" />
  <project path="external/chromium_org/testing/gtest" name="yazuo/platform/external/chromium_org/testing/gtest" />
  <project path="external/chromium_org/third_party/WebKit" name="yazuo/platform/external/chromium_org/third_party/WebKit" />
  <project path="external/chromium_org/third_party/angle_dx11" name="yazuo/platform/external/chromium_org/third_party/angle_dx11" />
  <project path="external/chromium_org/third_party/eyesfree/src/android/java/src/com/googlecode/eyesfree/braille" name="yazuo/platform/external/chromium_org/third_party/eyesfree/src/android/java/src/com/googlecode/eyesfree/braille" />
  <project path="external/chromium_org/third_party/freetype" name="yazuo/platform/external/chromium_org/third_party/freetype" />
  <project path="external/chromium_org/third_party/icu" name="yazuo/platform/external/chromium_org/third_party/icu" />
  <project path="external/chromium_org/third_party/leveldatabase/src" name="yazuo/platform/external/chromium_org/third_party/leveldatabase/src" />
  <project path="external/chromium_org/third_party/libjingle/source/talk" name="yazuo/platform/external/chromium_org/third_party/libjingle/source/talk" />
  <project path="external/chromium_org/third_party/libphonenumber/src/phonenumbers" name="yazuo/platform/external/chromium_org/third_party/libphonenumber/src/phonenumbers" />
  <project path="external/chromium_org/third_party/libphonenumber/src/resources" name="yazuo/platform/external/chromium_org/third_party/libphonenumber/src/resources" />
  <project path="external/chromium_org/third_party/mesa/src" name="yazuo/platform/external/chromium_org/third_party/mesa/src" />
  <project path="external/chromium_org/third_party/openssl" name="yazuo/platform/external/chromium_org/third_party/openssl" />
  <project path="external/chromium_org/third_party/opus/src" name="yazuo/platform/external/chromium_org/third_party/opus/src" />
  <project path="external/chromium_org/third_party/ots" name="yazuo/platform/external/chromium_org/third_party/ots" />
  <project path="external/chromium_org/third_party/skia/gyp" name="yazuo/platform/external/chromium_org/third_party/skia/gyp" />
  <project path="external/chromium_org/third_party/skia/include" name="yazuo/platform/external/chromium_org/third_party/skia/include" />
  <project path="external/chromium_org/third_party/skia/src" name="yazuo/platform/external/chromium_org/third_party/skia/src" />
  <project path="external/chromium_org/third_party/smhasher/src" name="yazuo/platform/external/chromium_org/third_party/smhasher/src" />
  <project path="external/chromium_org/third_party/yasm/source/patched-yasm" name="yazuo/platform/external/chromium_org/third_party/yasm/source/patched-yasm" />
  <project path="external/chromium_org/tools/grit" name="yazuo/platform/external/chromium_org/tools/grit" />
  <project path="external/chromium_org/tools/gyp" name="yazuo/platform/external/chromium_org/tools/gyp" />
  <project path="external/chromium_org/v8" name="yazuo/platform/external/chromium_org/v8" />
  <project path="external/clang" name="yazuo/platform/external/clang"  />
  <project path="external/compiler-rt" name="yazuo/platform/external/compiler-rt"  />
  <project path="external/dexmaker" name="yazuo/platform/external/dexmaker" />
  <project path="external/dhcpcd" name="yazuo/platform/external/dhcpcd" />
  <project path="external/dnsmasq" name="yazuo/platform/external/dnsmasq"  />
  <project path="external/doclava" name="yazuo/platform/external/doclava" />
  <project path="external/dropbear" name="yazuo/platform/external/dropbear" />
  <project path="external/droiddriver" name="yazuo/platform/external/droiddriver" />
  <project path="external/e2fsprogs" name="yazuo/platform/external/e2fsprogs"  />
  <project path="external/easymock" name="yazuo/platform/external/easymock" />
  <project path="external/eclipse-basebuilder" name="yazuo/platform/external/eclipse-basebuilder" />
  <project path="external/eclipse-windowbuilder" name="yazuo/platform/external/eclipse-windowbuilder" />
  <project path="external/eigen" name="yazuo/platform/external/eigen" />
  <project path="external/elfutils" name="yazuo/platform/external/elfutils" />
  <project path="external/embunit" name="yazuo/platform/external/embunit" />
  <project path="external/emma" name="yazuo/platform/external/emma" />
  <project path="external/esd" name="yazuo/platform/external/esd" />
  <project path="external/expat" name="yazuo/platform/external/expat"  />
  <project path="external/eyes-free" name="yazuo/platform/external/eyes-free" />
  <project path="external/fdlibm" name="yazuo/platform/external/fdlibm" />
  <project path="external/flac" name="yazuo/platform/external/flac"  />
  <project path="external/freetype" name="yazuo/platform/external/freetype"  />
  <project path="external/fsck_msdos" name="yazuo/platform/external/fsck_msdos" />
  <project path="external/ganymed-ssh2" name="yazuo/platform/external/ganymed-ssh2" />
  <project path="external/gcc-demangle" name="yazuo/platform/external/gcc-demangle"  />
  <project path="external/genext2fs" name="yazuo/platform/external/genext2fs" />
  <project path="external/giflib" name="yazuo/platform/external/giflib" />
  <project path="external/google-diff-match-patch" name="yazuo/platform/external/google-diff-match-patch" />
  <project path="external/grub" name="yazuo/platform/external/grub" />
  <project path="external/gtest" name="yazuo/platform/external/gtest"  />
  <project path="external/guava" name="yazuo/platform/external/guava" />
  <project path="external/hamcrest" name="yazuo/platform/external/hamcrest" />
  <project path="external/harfbuzz" name="yazuo/platform/external/harfbuzz" />
  <project path="external/harfbuzz_ng" name="yazuo/platform/external/harfbuzz_ng" />
  <project path="external/hyphenation" name="yazuo/platform/external/hyphenation" />
  <project path="external/icu4c" name="yazuo/platform/external/icu4c"  />
  <project path="external/iproute2" name="yazuo/platform/external/iproute2"  />
  <project path="external/ipsec-tools" name="yazuo/platform/external/ipsec-tools" />
  <project path="external/iptables" name="yazuo/platform/external/iptables" />
  <project path="external/iputils" name="yazuo/platform/external/iputils" />
  <project path="external/LaunchPPPoe" name="yazuo/platform/external/LaunchPPPoe" />
  <project path="external/libifaddrs" name="yazuo/platform/external/libifaddrs" />
  <project path="external/pppoe" name="yazuo/platform/external/pppoe" />
  <project path="external/javasqlite" name="yazuo/platform/external/javasqlite" />
  <project path="external/javassist" name="yazuo/platform/external/javassist" />
  <project path="external/jdiff" name="yazuo/platform/external/jdiff" />
  <project path="external/jhead" name="yazuo/platform/external/jhead"  />
  <project path="external/jmdns" name="yazuo/platform/external/jmdns" />
  <project path="external/jmonkeyengine" name="yazuo/platform/external/jmonkeyengine" />
  <project path="external/jpeg" name="yazuo/platform/external/jpeg"  />
  <project path="external/jsilver" name="yazuo/platform/external/jsilver" />
  <project path="external/jsr305" name="yazuo/platform/external/jsr305" />
  <project path="external/junit" name="yazuo/platform/external/junit" />
  <project path="external/kernel-headers" name="yazuo/platform/external/kernel-headers" />
  <project path="external/libcap-ng" name="yazuo/platform/external/libcap-ng" />
  <project path="external/libffi" name="yazuo/platform/external/libffi" />
  <project path="external/libgsm" name="yazuo/platform/external/libgsm"  />
  <project path="external/liblzf" name="yazuo/platform/external/liblzf"  />
  <project path="external/libmtp" name="yazuo/platform/external/libmtp" />
  <project path="external/libnfc-nci" name="yazuo/platform/external/libnfc-nci"  />
  <project path="external/libnfc-nxp" name="yazuo/platform/external/libnfc-nxp"  />
  <project path="external/libnl-headers" name="yazuo/platform/external/libnl-headers"  />
  <project path="external/libogg" name="yazuo/platform/external/libogg" />
  <project path="external/libpcap" name="yazuo/platform/external/libpcap" />
  <project path="external/libphonenumber" name="yazuo/platform/external/libphonenumber" />
  <project path="external/libpng" name="yazuo/platform/external/libpng"  />
  <project path="external/libppp" name="yazuo/platform/external/libppp" />
  <project path="external/libselinux" name="yazuo/platform/external/libselinux"  />
  <project path="external/libsepol" name="yazuo/platform/external/libsepol"  />
  <project path="external/libusb" name="yazuo/platform/external/libusb" />
  <project path="external/libusb-compat" name="yazuo/platform/external/libusb-compat" />
  <project path="external/libvorbis" name="yazuo/platform/external/libvorbis" />
  <project path="external/libvpx" name="yazuo/platform/external/libvpx"  />
  <project path="external/libxml2" name="yazuo/platform/external/libxml2" />
  <project path="external/libxslt" name="yazuo/platform/external/libxslt" />
  <project path="external/libyuv" name="yazuo/platform/external/libyuv"  />
  <project path="external/linux-tools-perf" name="yazuo/platform/external/linux-tools-perf" />
  <project path="external/littlemock" name="yazuo/platform/external/littlemock" />
  <project path="external/wide-dhcpv6" name="yazuo/platform/external/wide-dhcpv6" />
  <project path="external/llvm" name="yazuo/platform/external/llvm"  />
  <project path="external/lzma" name="yazuo/platform/external/lzma" />
  <project path="external/marisa-trie" name="yazuo/platform/external/marisa-trie" />
  <project path="external/markdown" name="yazuo/platform/external/markdown" />
  <project path="external/mdnsresponder" name="yazuo/platform/external/mdnsresponder"  />
  <project path="external/mesa3d" name="yazuo/platform/external/mesa3d" />
  <project path="external/mksh" name="yazuo/platform/external/mksh"  />
  <project path="external/mockito" name="yazuo/platform/external/mockito" />
  <project path="external/mockwebserver" name="yazuo/platform/external/mockwebserver" />
  <project path="external/mp4parser" name="yazuo/platform/external/mp4parser" />
  <project path="external/mtpd" name="yazuo/platform/external/mtpd" />
  <project path="external/naver-fonts" name="yazuo/platform/external/naver-fonts" />
  <project path="external/netcat" name="yazuo/platform/external/netcat" />
  <project path="external/netperf" name="yazuo/platform/external/netperf" />
  <project path="external/neven" name="yazuo/platform/external/neven" />
  <project path="external/nist-pkits" name="yazuo/platform/external/nist-pkits" />
  <project path="external/nist-sip" name="yazuo/platform/external/nist-sip" />
  <project path="external/noto-fonts" name="yazuo/platform/external/noto-fonts" />
  <project path="external/oauth" name="yazuo/platform/external/oauth" />
  <project path="external/objenesis" name="yazuo/platform/external/objenesis" />
  <project path="external/okhttp" name="yazuo/platform/external/okhttp" />
  <project path="external/open-vcdiff" name="yazuo/platform/external/open-vcdiff" />
  <project path="external/opencv" name="yazuo/platform/external/opencv" />
  <project path="external/openfst" name="yazuo/platform/external/openfst" />
  <project path="external/openssh" name="yazuo/platform/external/openssh" />
  <project path="external/openssl" name="yazuo/platform/external/openssl"  />
  <project path="external/oprofile" name="yazuo/platform/external/oprofile" />
  <project path="external/pixman" name="yazuo/platform/external/pixman" />
  <project path="external/ppp" name="yazuo/platform/external/ppp" />
  <project path="external/proguard" name="yazuo/platform/external/proguard"  />
  <project path="external/protobuf" name="yazuo/platform/external/protobuf"  />
  <project path="external/qemu" name="yazuo/platform/external/qemu" />
  <project path="external/qemu-pc-bios" name="yazuo/platform/external/qemu-pc-bios" />
  <project path="external/regex-re2" name="yazuo/platform/external/regex-re2" />
  <project path="external/replicaisland" name="yazuo/platform/external/replicaisland" />
  <project path="external/robolectric" name="yazuo/platform/external/robolectric" />
  <project path="external/safe-iop" name="yazuo/platform/external/safe-iop"  />
  <project path="external/scrypt" name="yazuo/platform/external/scrypt"  />
  <project path="external/sepolicy" name="yazuo/platform/external/sepolicy"  />
  <project path="external/sfntly" name="yazuo/platform/external/sfntly" />
  <project path="external/sil-fonts" name="yazuo/platform/external/sil-fonts" />
  <project path="external/skia" name="yazuo/platform/external/skia" />
  <project path="external/smack" name="yazuo/platform/external/smack" />
  <project path="external/smali" name="yazuo/platform/external/smali" />
  <project path="external/sonivox" name="yazuo/platform/external/sonivox"  />
  <project path="external/speex" name="yazuo/platform/external/speex"  />
  <project path="external/sqlite" name="yazuo/platform/external/sqlite"  />
  <project path="external/srec" name="yazuo/platform/external/srec" />
  <project path="external/srtp" name="yazuo/platform/external/srtp" />
  <project path="external/stlport" name="yazuo/platform/external/stlport"  />
  <project path="external/strace" name="yazuo/platform/external/strace" />
  <project path="external/stressapptest" name="yazuo/platform/external/stressapptest" />
  <project path="external/svox" name="yazuo/platform/external/svox" />
  <project path="external/tagsoup" name="yazuo/platform/external/tagsoup" />
  <project path="external/tcpdump" name="yazuo/platform/external/tcpdump" />
  <project path="external/timezonepicker-support" name="yazuo/platform/external/timezonepicker-support" />
  <project path="external/tinyalsa" name="yazuo/platform/external/tinyalsa"  />
  <project path="external/tinycompress" name="yazuo/platform/external/tinycompress"  />
  <project path="external/tinyxml" name="yazuo/platform/external/tinyxml"  />
  <project path="external/tinyxml2" name="yazuo/platform/external/tinyxml2"  />
  <project path="external/tremolo" name="yazuo/platform/external/tremolo"  />
  <project path="external/v8" name="yazuo/platform/external/v8" />
  <project path="external/valgrind" name="yazuo/platform/external/valgrind"  />
  <project path="external/webp" name="yazuo/platform/external/webp" />
  <project path="external/webrtc" name="yazuo/platform/external/webrtc"  />
  <project path="external/wpa_supplicant_8" name="yazuo/platform/external/wpa_supplicant_8"  />
  <project path="external/xmlwriter" name="yazuo/platform/external/xmlwriter" />
  <project path="external/xmp_toolkit" name="yazuo/platform/external/xmp_toolkit" />
  <project path="external/yaffs2" name="yazuo/platform/external/yaffs2"  />
  <project path="external/zlib" name="yazuo/platform/external/zlib"  />
  <project path="external/zxing" name="yazuo/platform/external/zxing" />
  <project path="frameworks/av" name="yazuo/platform/frameworks/av"  />
  <project path="frameworks/base" name="yazuo/platform/frameworks/base" />
  <project path="frameworks/compile/libbcc" name="yazuo/platform/frameworks/compile/libbcc"  />
  <project path="frameworks/compile/mclinker" name="yazuo/platform/frameworks/compile/mclinker"  />
  <project path="frameworks/compile/slang" name="yazuo/platform/frameworks/compile/slang"  />
  <project path="frameworks/ex" name="yazuo/platform/frameworks/ex" />
  <project path="frameworks/ml" name="yazuo/platform/frameworks/ml" />
  <project path="frameworks/bluetooth" name="yazuo/platform/frameworks/bluetooth" />
  <project path="frameworks/native" name="yazuo/platform/frameworks/native"  />
  <project path="frameworks/opt/calendar" name="yazuo/platform/frameworks/opt/calendar" />
  <project path="frameworks/opt/colorpicker" name="yazuo/platform/frameworks/opt/colorpicker" />
  <project path="frameworks/opt/datetimepicker" name="yazuo/platform/frameworks/opt/datetimepicker" />
  <project path="frameworks/opt/emoji" name="yazuo/platform/frameworks/opt/emoji" />
  <project path="frameworks/opt/inputmethodcommon" name="yazuo/platform/frameworks/opt/inputmethodcommon" />
  <project path="frameworks/opt/mailcommon" name="yazuo/platform/frameworks/opt/mailcommon" />
  <project path="frameworks/opt/mms" name="yazuo/platform/frameworks/opt/mms" />
  <project path="frameworks/opt/net/voip" name="yazuo/platform/frameworks/opt/net/voip" />
  <project path="frameworks/opt/photoviewer" name="yazuo/platform/frameworks/opt/photoviewer" />
  <project path="frameworks/opt/timezonepicker" name="yazuo/platform/frameworks/opt/timezonepicker" />
  <project path="frameworks/opt/telephony" name="yazuo/platform/frameworks/opt/telephony"  />
  <project path="frameworks/opt/vcard" name="yazuo/platform/frameworks/opt/vcard" />
  <project path="frameworks/rs" name="yazuo/platform/frameworks/rs"  />
  <project path="frameworks/support" name="yazuo/platform/frameworks/support" />
  <project path="frameworks/testing" name="yazuo/platform/frameworks/testing" />
  <project path="frameworks/uiautomator" name="yazuo/platform/frameworks/uiautomator" />
  <project path="frameworks/volley" name="yazuo/platform/frameworks/volley" />
  <project path="frameworks/webview" name="yazuo/platform/frameworks/webview" />
  <project path="frameworks/wilhelm" name="yazuo/platform/frameworks/wilhelm" />
  <project path="hardware/akm" name="yazuo/platform/hardware/akm" />
  <project path="hardware/broadcom/libbt" name="yazuo/platform/hardware/broadcom/libbt"  />
  <project path="hardware/broadcom/wlan" name="yazuo/platform/hardware/broadcom/wlan"  />
  <project path="hardware/invensense" name="yazuo/platform/hardware/invensense"  />
  <project path="hardware/libhardware" name="yazuo/platform/hardware/libhardware"  />
  <project path="hardware/libhardware_legacy" name="yazuo/platform/hardware/libhardware_legacy"  />
  <project path="hardware/qcom/audio" name="yazuo/platform/hardware/qcom/audio"  />
  <project path="hardware/qcom/bt" name="yazuo/platform/hardware/qcom/bt"  />
  <project path="hardware/qcom/camera" name="yazuo/platform/hardware/qcom/camera"  />
  <project path="hardware/qcom/display" name="yazuo/platform/hardware/qcom/display"  />
  <project path="hardware/qcom/keymaster" name="yazuo/platform/hardware/qcom/keymaster"  />
  <project path="hardware/qcom/media" name="yazuo/platform/hardware/qcom/media"  />
  <project path="hardware/qcom/msm8960" name="yazuo/platform/hardware/qcom/msm8960"  />
  <project path="hardware/qcom/msm8x74" name="yazuo/platform/hardware/qcom/msm8x74"  />
  <project path="hardware/qcom/power" name="yazuo/platform/hardware/qcom/power"  />
  <project path="hardware/qcom/wlan" name="yazuo/platform/hardware/qcom/wlan"  />
  <project path="hardware/ril" name="yazuo/platform/hardware/ril"  />
  <project path="hardware/samsung_slsi/exynos5" name="yazuo/platform/hardware/samsung_slsi/exynos5"  />
  <project path="hardware/ti/omap3" name="yazuo/platform/hardware/ti/omap3" />
  <project path="hardware/ti/omap4xxx" name="yazuo/platform/hardware/ti/omap4xxx"  />
  <project path="hardware/ti/wlan" name="yazuo/platform/hardware/ti/wlan" />
  <project path="hardware/ti/wpan" name="yazuo/platform/hardware/ti/wpan" />
  <project path="libcore" name="yazuo/platform/libcore" />
  <project path="libnativehelper" name="yazuo/platform/libnativehelper"  />
  <project path="ndk" name="yazuo/platform/ndk" />
  <project path="kernel" name="yazuo/kernel"/>
  <project path="mediatek" name="yazuo/mediatek" />
  <project path="vendor" name="yazuo/vendor" />
  <project path="packages/providers/DrmProvider" name="yazuo/platform/packages/providers/DrmProvider" />
  <project path="packages/apps/DeviceTestApp" name="yazuo/platform/packages/apps/DeviceTestApp" />
  <project path="packages/apps/BasicSmsReceiver" name="yazuo/platform/packages/apps/BasicSmsReceiver" />
  <project path="packages/apps/Bluetooth" name="yazuo/platform/packages/apps/Bluetooth" />
  <project path="packages/apps/Browser" name="yazuo/platform/packages/apps/Browser" />
  <project path="packages/apps/Calculator" name="yazuo/platform/packages/apps/Calculator" />
  <project path="packages/apps/Calendar" name="yazuo/platform/packages/apps/Calendar" />
  <project path="packages/apps/Camera" name="yazuo/platform/packages/apps/Camera" />
  <project path="packages/apps/Camera2" name="yazuo/platform/packages/apps/Camera2" />
  <project path="packages/apps/CellBroadcastReceiver" name="yazuo/platform/packages/apps/CellBroadcastReceiver" />
  <project path="packages/apps/CertInstaller" name="yazuo/platform/packages/apps/CertInstaller" />
  <project path="packages/apps/Contacts" name="yazuo/platform/packages/apps/Contacts" />
  <project path="packages/apps/ContactsCommon" name="yazuo/platform/packages/apps/ContactsCommon" />
  <project path="packages/apps/DeskClock" name="yazuo/platform/packages/apps/DeskClock" />
  <project path="packages/apps/Dialer" name="yazuo/platform/packages/apps/Dialer" />
  <project path="packages/apps/Email" name="yazuo/platform/packages/apps/Email" />
  <project path="packages/apps/Exchange" name="yazuo/platform/packages/apps/Exchange" />
  <project path="packages/apps/Gallery" name="yazuo/platform/packages/apps/Gallery" />
  <project path="packages/apps/Gallery2" name="yazuo/platform/packages/apps/Gallery2" />
  <project path="packages/apps/HTMLViewer" name="yazuo/platform/packages/apps/HTMLViewer" />
  <project path="packages/apps/InCallUI" name="yazuo/platform/packages/apps/InCallUI" />
  <project path="packages/apps/KeyChain" name="yazuo/platform/packages/apps/KeyChain" />
  <project path="packages/apps/Launcher2" name="yazuo/platform/packages/apps/Launcher2" />
  <project path="packages/apps/Launcher3" name="yazuo/platform/packages/apps/Launcher3" />
  <project path="packages/apps/LegacyCamera" name="yazuo/platform/packages/apps/LegacyCamera" />
  <project path="packages/apps/Mms" name="yazuo/platform/packages/apps/Mms" />
  <project path="packages/apps/Music" name="yazuo/platform/packages/apps/Music" />
  <project path="packages/apps/MusicFX" name="yazuo/platform/packages/apps/MusicFX" />
  <project path="packages/apps/Nfc" name="yazuo/platform/packages/apps/Nfc" />
  <project path="packages/apps/OneTimeInitializer" name="yazuo/platform/packages/apps/OneTimeInitializer" />
  <project path="packages/apps/PackageInstaller" name="yazuo/platform/packages/apps/PackageInstaller" />
  <project path="packages/apps/PhoneCommon" name="yazuo/platform/packages/apps/PhoneCommon" />
  <project path="packages/apps/Protips" name="yazuo/platform/packages/apps/Protips" />
  <project path="packages/apps/Provision" name="yazuo/platform/packages/apps/Provision" />
  <project path="packages/apps/QuickSearchBox" name="yazuo/platform/packages/apps/QuickSearchBox" />
  <project path="packages/apps/Settings" name="yazuo/platform/packages/apps/Settings" />
  <project path="packages/apps/SoundRecorder" name="yazuo/platform/packages/apps/SoundRecorder" />
  <project path="packages/apps/SpareParts" name="yazuo/platform/packages/apps/SpareParts" />
  <project path="packages/apps/SpeechRecorder" name="yazuo/platform/packages/apps/SpeechRecorder" />
  <project path="packages/apps/Stk" name="yazuo/platform/packages/apps/Stk" />
  <project path="packages/apps/Tag" name="yazuo/platform/packages/apps/Tag" />
  <project path="packages/apps/UnifiedEmail" name="yazuo/platform/packages/apps/UnifiedEmail" />
  <project path="packages/apps/VideoEditor" name="yazuo/platform/packages/apps/VideoEditor" />
  <project path="packages/apps/VoiceDialer" name="yazuo/platform/packages/apps/VoiceDialer" />
  <project path="packages/experimental" name="yazuo/platform/packages/experimental" />
  <project path="packages/inputmethods/LatinIME" name="yazuo/platform/packages/inputmethods/LatinIME" />
  <project path="packages/inputmethods/OpenWnn" name="yazuo/platform/packages/inputmethods/OpenWnn" />
  <project path="packages/inputmethods/PinyinIME" name="yazuo/platform/packages/inputmethods/PinyinIME" />
  <project path="packages/providers/ApplicationsProvider" name="yazuo/platform/packages/providers/ApplicationsProvider" />
  <project path="packages/providers/CalendarProvider" name="yazuo/platform/packages/providers/CalendarProvider" />
  <project path="packages/providers/ContactsProvider" name="yazuo/platform/packages/providers/ContactsProvider" />
  <project path="packages/providers/DownloadProvider" name="yazuo/platform/packages/providers/DownloadProvider" />
  <project path="packages/providers/MediaProvider" name="yazuo/platform/packages/providers/MediaProvider" />
  <project path="packages/providers/PartnerBookmarksProvider" name="yazuo/platform/packages/providers/PartnerBookmarksProvider" />
  <project path="packages/providers/TelephonyProvider" name="yazuo/platform/packages/providers/TelephonyProvider" />
  <project path="packages/providers/UserDictionaryProvider" name="yazuo/platform/packages/providers/UserDictionaryProvider" />
  <project path="packages/screensavers/Basic" name="yazuo/platform/packages/screensavers/Basic" />
  <project path="packages/screensavers/PhotoTable" name="yazuo/platform/packages/screensavers/PhotoTable" />
  <project path="packages/screensavers/WebView" name="yazuo/platform/packages/screensavers/WebView" />
  <project path="packages/services/Telephony" name="yazuo/platform/packages/services/Telephony" />
  <project path="packages/wallpapers/Basic" name="yazuo/platform/packages/wallpapers/Basic" />
  <project path="packages/wallpapers/Galaxy4" name="yazuo/platform/packages/wallpapers/Galaxy4" />
  <project path="packages/wallpapers/HoloSpiral" name="yazuo/platform/packages/wallpapers/HoloSpiral" />
  <project path="packages/wallpapers/LivePicker" name="yazuo/platform/packages/wallpapers/LivePicker" />
  <project path="packages/wallpapers/MagicSmoke" name="yazuo/platform/packages/wallpapers/MagicSmoke" />
  <project path="packages/wallpapers/MusicVisualization" name="yazuo/platform/packages/wallpapers/MusicVisualization" />
  <project path="packages/wallpapers/NoiseField" name="yazuo/platform/packages/wallpapers/NoiseField" />
  <project path="packages/wallpapers/PhaseBeam" name="yazuo/platform/packages/wallpapers/PhaseBeam" />
  <project path="pdk" name="yazuo/platform/pdk"  />
  <project path="prebuilts/clang/linux-x86/3.1" name="yazuo/platform/prebuilts/clang/linux-x86/3.1"  />
  <project path="prebuilts/devtools" name="yazuo/platform/prebuilts/devtools" />
  <project path="prebuilts/eclipse" name="yazuo/platform/prebuilts/eclipse"  />
  <project path="prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6" name="yazuo/platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6"  />
  <project path="prebuilts/gcc/darwin-x86/arm/arm-eabi-4.7" name="yazuo/platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.7"  />
  <project path="prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.6" name="yazuo/platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.6"  />
  <project path="prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.7" name="yazuo/platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.7"  />
  <project path="prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1" name="yazuo/platform/prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1"  />
  <project path="prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.6" name="yazuo/platform/prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.6"  />
  <project path="prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.7" name="yazuo/platform/prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.7"  />
  <project path="prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.6" name="yazuo/platform/prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.6"  />
  <project path="prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.7" name="yazuo/platform/prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.7"  />
  <project path="prebuilts/gcc/linux-x86/arm/arm-eabi-4.6" name="yazuo/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6"  />
  <project path="prebuilts/gcc/linux-x86/arm/arm-eabi-4.7" name="yazuo/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7"  />
  <project path="prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6" name="yazuo/platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6"  />
  <project path="prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7" name="yazuo/platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7"  />
  <project path="prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.4.3" name="yazuo/platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.4.3"  />
  <project path="prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" name="yazuo/platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6"  />
  <project path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" name="yazuo/platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6"  />
  <project path="prebuilts/gcc/linux-x86/mips/mipsel-linux-android-4.6" name="yazuo/platform/prebuilts/gcc/linux-x86/mips/mipsel-linux-android-4.6"  />
  <project path="prebuilts/gcc/linux-x86/mips/mipsel-linux-android-4.7" name="yazuo/platform/prebuilts/gcc/linux-x86/mips/mipsel-linux-android-4.7"  />
  <project path="prebuilts/gcc/linux-x86/x86/i686-linux-android-4.6" name="yazuo/platform/prebuilts/gcc/linux-x86/x86/i686-linux-android-4.6"  />
  <project path="prebuilts/gcc/linux-x86/x86/i686-linux-android-4.7" name="yazuo/platform/prebuilts/gcc/linux-x86/x86/i686-linux-android-4.7"  />
  <project path="prebuilts/misc" name="yazuo/platform/prebuilts/misc"  />
  <project path="prebuilts/ndk" name="yazuo/platform/prebuilts/ndk"  />
  <project path="prebuilts/python/darwin-x86/2.7.5" name="yazuo/platform/prebuilts/python/darwin-x86/2.7.5"  />
  <project path="prebuilts/python/linux-x86/2.7.5" name="yazuo/platform/prebuilts/python/linux-x86/2.7.5"  />
  <project path="prebuilts/qemu-kernel" name="yazuo/platform/prebuilts/qemu-kernel"  />
  <project path="prebuilts/runtime" name="yazuo/platform/prebuilts/runtime" />
  <project path="prebuilts/sdk" name="yazuo/platform/prebuilts/sdk"  />
  <project path="prebuilts/tools" name="yazuo/platform/prebuilts/tools"  />
  <project path="sdk" name="yazuo/platform/sdk" />
  <project path="system/mobile_toolkit" name="yazuo/platform/system/mobile_toolkit" />
  <project path="system/core" name="yazuo/platform/system/core"  />
  <project path="system/extras" name="yazuo/platform/system/extras"  />
  <project path="system/media" name="yazuo/platform/system/media"  />
  <project path="system/netd" name="yazuo/platform/system/netd"  />
  <project path="system/security" name="yazuo/platform/system/security"  />
  <project path="system/vold" name="yazuo/platform/system/vold"  />
  <project path="tools/external/fat32lib" name="yazuo/platform/tools/external/fat32lib"  />
  <project path="tools/external/gradle" name="yazuo/platform/tools/external/gradle"  />
  <project path="tools/idea" name="yazuo/platform/tools/idea"  />

</manifest>

将上面的default.xml 文件push 到仓库:

git add default.xml
git commit -m "add default.xml"
git push origin master

4)给manifest.git仓库添加新成员berry(服务器端的默认登录用户)
【在服务器上使用berry用户操作】
生成berry用户的秘钥,并将公钥拷贝到远程xia私钥计算机的/tmp目录下

ssh-keygen -t rsa
scp ~/.ssh/id_rsa.pub xia@192.168.100.181:/tmp

【在xia私钥计算机上操作】
将berry用户的公钥拷贝到本地gitolite-admin库里的keydir目录下:

cp /tmp/id_rsa.pub ~/gitolite-admin/keydir/berry.pub

编辑本地gitolite-admin库里的gitolite.conf,修改:

repo    manifest
-        RW+     =   xia
+        RW+     =   xia berry

commit修改,push到服务器生效。

3.创建服务器上的android源码版本库
1)获取default.xml文件
【在服务器上使用berry用户操作】

cd ~/Download/
git clone gitolite@192.168.100.249:manifest.git

【在服务器上使用gitolite用户操作】

sudo su - gitolite
cd ~
cp /home/berry/Downloads/manifest/default.xml ./

2)生成server.txt
使用 cat default.xml | cut -d ‘”’ -f 4 > server.txt
生成server.txt,将无关的字符删除

-UTF-8 
-<manifest>
-Makefile
-   </project>
-</manifest>

得到一个服务端路径的文本 server.txt

yazuo/platform/build
yazuo/platform/abi/cpp
yazuo/platform/art
yazuo/platform/bionic
yazuo/platform/bootable/bootloader/lk
yazuo/platform/bootable/diskinstaller
yazuo/platform/bootable/recovery
yazuo/platform/cts
yazuo/platform/dalvik
yazuo/platform/developers/build
yazuo/platform/developers/samples/android
yazuo/platform/development
yazuo/device/asus/deb
yazuo/device/asus/flo
yazuo/device/asus/flo-kernel
yazuo/device/asus/grouper
yazuo/device/asus/tilapia
yazuo/device/common
yazuo/device/generic/armv7-a-neon
yazuo/device/generic/common
yazuo/device/generic/goldfish
yazuo/device/generic/mips
yazuo/device/generic/mini-emulator-armv7-a-neon
yazuo/device/generic/mini-emulator-mips
yazuo/device/generic/mini-emulator-x86
yazuo/device/generic/x86
yazuo/device/google/accessory/arduino
yazuo/device/google/accessory/demokit
yazuo/device/lge/hammerhead
yazuo/device/lge/hammerhead-kernel
yazuo/device/lge/mako
yazuo/device/lge/mako-kernel
yazuo/device/sample
yazuo/device/samsung/manta
yazuo/platform/docs/source.android.com
yazuo/platform/external/aac
yazuo/platform/external/android-clat
yazuo/platform/external/android-mock
yazuo/platform/external/ant-glob
yazuo/platform/external/antlr
yazuo/platform/external/apache-harmony
yazuo/platform/external/apache-http
yazuo/platform/external/apache-xml
yazuo/platform/external/arduino
yazuo/platform/external/bison
yazuo/platform/external/blktrace
yazuo/platform/external/bluetooth/bluedroid
yazuo/platform/external/bouncycastle
yazuo/platform/external/bsdiff
yazuo/platform/external/bzip2
yazuo/platform/external/ceres-solver
yazuo/platform/external/checkpolicy
yazuo/platform/external/chromium
yazuo/platform/external/chromium-libpac
yazuo/platform/external/chromium-trace
yazuo/platform/external/chromium_org
yazuo/platform/external/chromium_org/sdch/open-vcdiff
yazuo/platform/external/chromium_org/testing/gtest
yazuo/platform/external/chromium_org/third_party/WebKit
yazuo/platform/external/chromium_org/third_party/angle_dx11
yazuo/platform/external/chromium_org/third_party/eyesfree/src/android/java/src/com/googlecode/eyesfree/braille
yazuo/platform/external/chromium_org/third_party/freetype
yazuo/platform/external/chromium_org/third_party/icu
yazuo/platform/external/chromium_org/third_party/leveldatabase/src
yazuo/platform/external/chromium_org/third_party/libjingle/source/talk
yazuo/platform/external/chromium_org/third_party/libphonenumber/src/phonenumbers
yazuo/platform/external/chromium_org/third_party/libphonenumber/src/resources
yazuo/platform/external/chromium_org/third_party/mesa/src
yazuo/platform/external/chromium_org/third_party/openssl
yazuo/platform/external/chromium_org/third_party/opus/src
yazuo/platform/external/chromium_org/third_party/ots
yazuo/platform/external/chromium_org/third_party/skia/gyp
yazuo/platform/external/chromium_org/third_party/skia/include
yazuo/platform/external/chromium_org/third_party/skia/src
yazuo/platform/external/chromium_org/third_party/smhasher/src
yazuo/platform/external/chromium_org/third_party/yasm/source/patched-yasm
yazuo/platform/external/chromium_org/tools/grit
yazuo/platform/external/chromium_org/tools/gyp
yazuo/platform/external/chromium_org/v8
yazuo/platform/external/clang
yazuo/platform/external/compiler-rt
yazuo/platform/external/dexmaker
yazuo/platform/external/dhcpcd
yazuo/platform/external/dnsmasq
yazuo/platform/external/doclava
yazuo/platform/external/dropbear
yazuo/platform/external/droiddriver
yazuo/platform/external/e2fsprogs
yazuo/platform/external/easymock
yazuo/platform/external/eclipse-basebuilder
yazuo/platform/external/eclipse-windowbuilder
yazuo/platform/external/eigen
yazuo/platform/external/elfutils
yazuo/platform/external/embunit
yazuo/platform/external/emma
yazuo/platform/external/esd
yazuo/platform/external/expat
yazuo/platform/external/eyes-free
yazuo/platform/external/fdlibm
yazuo/platform/external/flac
yazuo/platform/external/freetype
yazuo/platform/external/fsck_msdos
yazuo/platform/external/ganymed-ssh2
yazuo/platform/external/gcc-demangle
yazuo/platform/external/genext2fs
yazuo/platform/external/giflib
yazuo/platform/external/google-diff-match-patch
yazuo/platform/external/grub
yazuo/platform/external/gtest
yazuo/platform/external/guava
yazuo/platform/external/hamcrest
yazuo/platform/external/harfbuzz
yazuo/platform/external/harfbuzz_ng
yazuo/platform/external/hyphenation
yazuo/platform/external/icu4c
yazuo/platform/external/iproute2
yazuo/platform/external/ipsec-tools
yazuo/platform/external/iptables
yazuo/platform/external/iputils
yazuo/platform/external/LaunchPPPoe
yazuo/platform/external/libifaddrs
yazuo/platform/external/pppoe
yazuo/platform/external/javasqlite
yazuo/platform/external/javassist
yazuo/platform/external/jdiff
yazuo/platform/external/jhead
yazuo/platform/external/jmdns
yazuo/platform/external/jmonkeyengine
yazuo/platform/external/jpeg
yazuo/platform/external/jsilver
yazuo/platform/external/jsr305
yazuo/platform/external/junit
yazuo/platform/external/kernel-headers
yazuo/platform/external/libcap-ng
yazuo/platform/external/libffi
yazuo/platform/external/libgsm
yazuo/platform/external/liblzf
yazuo/platform/external/libmtp
yazuo/platform/external/libnfc-nci
yazuo/platform/external/libnfc-nxp
yazuo/platform/external/libnl-headers
yazuo/platform/external/libogg
yazuo/platform/external/libpcap
yazuo/platform/external/libphonenumber
yazuo/platform/external/libpng
yazuo/platform/external/libppp
yazuo/platform/external/libselinux
yazuo/platform/external/libsepol
yazuo/platform/external/libusb
yazuo/platform/external/libusb-compat
yazuo/platform/external/libvorbis
yazuo/platform/external/libvpx
yazuo/platform/external/libxml2
yazuo/platform/external/libxslt
yazuo/platform/external/libyuv
yazuo/platform/external/linux-tools-perf
yazuo/platform/external/littlemock
yazuo/platform/external/wide-dhcpv6
yazuo/platform/external/llvm
yazuo/platform/external/lzma
yazuo/platform/external/marisa-trie
yazuo/platform/external/markdown
yazuo/platform/external/mdnsresponder
yazuo/platform/external/mesa3d
yazuo/platform/external/mksh
yazuo/platform/external/mockito
yazuo/platform/external/mockwebserver
yazuo/platform/external/mp4parser
yazuo/platform/external/mtpd
yazuo/platform/external/naver-fonts
yazuo/platform/external/netcat
yazuo/platform/external/netperf
yazuo/platform/external/neven
yazuo/platform/external/nist-pkits
yazuo/platform/external/nist-sip
yazuo/platform/external/noto-fonts
yazuo/platform/external/oauth
yazuo/platform/external/objenesis
yazuo/platform/external/okhttp
yazuo/platform/external/open-vcdiff
yazuo/platform/external/opencv
yazuo/platform/external/openfst
yazuo/platform/external/openssh
yazuo/platform/external/openssl
yazuo/platform/external/oprofile
yazuo/platform/external/pixman
yazuo/platform/external/ppp
yazuo/platform/external/proguard
yazuo/platform/external/protobuf
yazuo/platform/external/qemu
yazuo/platform/external/qemu-pc-bios
yazuo/platform/external/regex-re2
yazuo/platform/external/replicaisland
yazuo/platform/external/robolectric
yazuo/platform/external/safe-iop
yazuo/platform/external/scrypt
yazuo/platform/external/sepolicy
yazuo/platform/external/sfntly
yazuo/platform/external/sil-fonts
yazuo/platform/external/skia
yazuo/platform/external/smack
yazuo/platform/external/smali
yazuo/platform/external/sonivox
yazuo/platform/external/speex
yazuo/platform/external/sqlite
yazuo/platform/external/srec
yazuo/platform/external/srtp
yazuo/platform/external/stlport
yazuo/platform/external/strace
yazuo/platform/external/stressapptest
yazuo/platform/external/svox
yazuo/platform/external/tagsoup
yazuo/platform/external/tcpdump
yazuo/platform/external/timezonepicker-support
yazuo/platform/external/tinyalsa
yazuo/platform/external/tinycompress
yazuo/platform/external/tinyxml
yazuo/platform/external/tinyxml2
yazuo/platform/external/tremolo
yazuo/platform/external/v8
yazuo/platform/external/valgrind
yazuo/platform/external/webp
yazuo/platform/external/webrtc
yazuo/platform/external/wpa_supplicant_8
yazuo/platform/external/xmlwriter
yazuo/platform/external/xmp_toolkit
yazuo/platform/external/yaffs2
yazuo/platform/external/zlib
yazuo/platform/external/zxing
yazuo/platform/frameworks/av
yazuo/platform/frameworks/base
yazuo/platform/frameworks/compile/libbcc
yazuo/platform/frameworks/compile/mclinker
yazuo/platform/frameworks/compile/slang
yazuo/platform/frameworks/ex
yazuo/platform/frameworks/ml
yazuo/platform/frameworks/bluetooth
yazuo/platform/frameworks/native
yazuo/platform/frameworks/opt/calendar
yazuo/platform/frameworks/opt/colorpicker
yazuo/platform/frameworks/opt/datetimepicker
yazuo/platform/frameworks/opt/emoji
yazuo/platform/frameworks/opt/inputmethodcommon
yazuo/platform/frameworks/opt/mailcommon
yazuo/platform/frameworks/opt/mms
yazuo/platform/frameworks/opt/net/voip
yazuo/platform/frameworks/opt/photoviewer
yazuo/platform/frameworks/opt/timezonepicker
yazuo/platform/frameworks/opt/telephony
yazuo/platform/frameworks/opt/vcard
yazuo/platform/frameworks/rs
yazuo/platform/frameworks/support
yazuo/platform/frameworks/testing
yazuo/platform/frameworks/uiautomator
yazuo/platform/frameworks/volley
yazuo/platform/frameworks/webview
yazuo/platform/frameworks/wilhelm
yazuo/platform/hardware/akm
yazuo/platform/hardware/broadcom/libbt
yazuo/platform/hardware/broadcom/wlan
yazuo/platform/hardware/invensense
yazuo/platform/hardware/libhardware
yazuo/platform/hardware/libhardware_legacy
yazuo/platform/hardware/qcom/audio
yazuo/platform/hardware/qcom/bt
yazuo/platform/hardware/qcom/camera
yazuo/platform/hardware/qcom/display
yazuo/platform/hardware/qcom/keymaster
yazuo/platform/hardware/qcom/media
yazuo/platform/hardware/qcom/msm8960
yazuo/platform/hardware/qcom/msm8x74
yazuo/platform/hardware/qcom/power
yazuo/platform/hardware/qcom/wlan
yazuo/platform/hardware/ril
yazuo/platform/hardware/samsung_slsi/exynos5
yazuo/platform/hardware/ti/omap3
yazuo/platform/hardware/ti/omap4xxx
yazuo/platform/hardware/ti/wlan
yazuo/platform/hardware/ti/wpan
yazuo/platform/libcore
yazuo/platform/libnativehelper
yazuo/platform/ndk
yazuo/kernel
yazuo/mediatek
yazuo/vendor
yazuo/platform/packages/providers/DrmProvider
yazuo/platform/packages/apps/DeviceTestApp
yazuo/platform/packages/apps/BasicSmsReceiver
yazuo/platform/packages/apps/Bluetooth
yazuo/platform/packages/apps/Browser
yazuo/platform/packages/apps/Calculator
yazuo/platform/packages/apps/Calendar
yazuo/platform/packages/apps/Camera
yazuo/platform/packages/apps/Camera2
yazuo/platform/packages/apps/CellBroadcastReceiver
yazuo/platform/packages/apps/CertInstaller
yazuo/platform/packages/apps/Contacts
yazuo/platform/packages/apps/ContactsCommon
yazuo/platform/packages/apps/DeskClock
yazuo/platform/packages/apps/Dialer
yazuo/platform/packages/apps/Email
yazuo/platform/packages/apps/Exchange
yazuo/platform/packages/apps/Gallery
yazuo/platform/packages/apps/Gallery2
yazuo/platform/packages/apps/HTMLViewer
yazuo/platform/packages/apps/InCallUI
yazuo/platform/packages/apps/KeyChain
yazuo/platform/packages/apps/Launcher2
yazuo/platform/packages/apps/Launcher3
yazuo/platform/packages/apps/LegacyCamera
yazuo/platform/packages/apps/Mms
yazuo/platform/packages/apps/Music
yazuo/platform/packages/apps/MusicFX
yazuo/platform/packages/apps/Nfc
yazuo/platform/packages/apps/OneTimeInitializer
yazuo/platform/packages/apps/PackageInstaller
yazuo/platform/packages/apps/PhoneCommon
yazuo/platform/packages/apps/Protips
yazuo/platform/packages/apps/Provision
yazuo/platform/packages/apps/QuickSearchBox
yazuo/platform/packages/apps/Settings
yazuo/platform/packages/apps/SoundRecorder
yazuo/platform/packages/apps/SpareParts
yazuo/platform/packages/apps/SpeechRecorder
yazuo/platform/packages/apps/Stk
yazuo/platform/packages/apps/Tag
yazuo/platform/packages/apps/UnifiedEmail
yazuo/platform/packages/apps/VideoEditor
yazuo/platform/packages/apps/VoiceDialer
yazuo/platform/packages/experimental
yazuo/platform/packages/inputmethods/LatinIME
yazuo/platform/packages/inputmethods/OpenWnn
yazuo/platform/packages/inputmethods/PinyinIME
yazuo/platform/packages/providers/ApplicationsProvider
yazuo/platform/packages/providers/CalendarProvider
yazuo/platform/packages/providers/ContactsProvider
yazuo/platform/packages/providers/DownloadProvider
yazuo/platform/packages/providers/MediaProvider
yazuo/platform/packages/providers/PartnerBookmarksProvider
yazuo/platform/packages/providers/TelephonyProvider
yazuo/platform/packages/providers/UserDictionaryProvider
yazuo/platform/packages/screensavers/Basic
yazuo/platform/packages/screensavers/PhotoTable
yazuo/platform/packages/screensavers/WebView
yazuo/platform/packages/services/Telephony
yazuo/platform/packages/wallpapers/Basic
yazuo/platform/packages/wallpapers/Galaxy4
yazuo/platform/packages/wallpapers/HoloSpiral
yazuo/platform/packages/wallpapers/LivePicker
yazuo/platform/packages/wallpapers/MagicSmoke
yazuo/platform/packages/wallpapers/MusicVisualization
yazuo/platform/packages/wallpapers/NoiseField
yazuo/platform/packages/wallpapers/PhaseBeam
yazuo/platform/pdk
yazuo/platform/prebuilts/clang/linux-x86/3.1
yazuo/platform/prebuilts/devtools
yazuo/platform/prebuilts/eclipse
yazuo/platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6
yazuo/platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.7
yazuo/platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.6
yazuo/platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.7
yazuo/platform/prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1
yazuo/platform/prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.6
yazuo/platform/prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.7
yazuo/platform/prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.6
yazuo/platform/prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.7
yazuo/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6
yazuo/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7
yazuo/platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6
yazuo/platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7
yazuo/platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.4.3
yazuo/platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6
yazuo/platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6
yazuo/platform/prebuilts/gcc/linux-x86/mips/mipsel-linux-android-4.6
yazuo/platform/prebuilts/gcc/linux-x86/mips/mipsel-linux-android-4.7
yazuo/platform/prebuilts/gcc/linux-x86/x86/i686-linux-android-4.6
yazuo/platform/prebuilts/gcc/linux-x86/x86/i686-linux-android-4.7
yazuo/platform/prebuilts/misc
yazuo/platform/prebuilts/ndk
yazuo/platform/prebuilts/python/darwin-x86/2.7.5
yazuo/platform/prebuilts/python/linux-x86/2.7.5
yazuo/platform/prebuilts/qemu-kernel
yazuo/platform/prebuilts/runtime
yazuo/platform/prebuilts/sdk
yazuo/platform/prebuilts/tools
yazuo/platform/sdk
yazuo/platform/system/mobile_toolkit
yazuo/platform/system/core
yazuo/platform/system/extras
yazuo/platform/system/media
yazuo/platform/system/netd
yazuo/platform/system/security
yazuo/platform/system/vold
yazuo/platform/tools/external/fat32lib
yazuo/platform/tools/external/gradle
yazuo/platform/tools/idea

3)编写初始化源码仓库脚本server_create.sh

vim server_create.sh 添加
#/bin/bash

set -x
set -e

pwd=${PWD}

cd /home/gitolite/repositories

while read line; do
    if [ -z "$line" ]; then
        echo work_dir not exist !!! 1>&2
        continue
    fi
    git init --bare $line.git
    echo ==== $line
    pwd
done

4)初始化空的源码仓库
【在服务器上使用gitolite用户操作】
cat server.txt | ./server_create.sh

5)生成client.txt
使用 cat default.xml | cut -d ‘”’ -f 2 > client.txt
生成client.txt,将无关的字符删除

-1.0
-<manifest>
-yazuo
-..
-ssh
-master
-yazuo
-1
-core/root.mk
-  </project>
-</manifest>

得到一个本地客户端仓库路径的文本 client.txt

build
abi/cpp
art
bionic
bootable/bootloader/lk
bootable/diskinstaller
bootable/recovery
cts
dalvik
developers/build
developers/samples/android
development
device/asus/deb
device/asus/flo
device/asus/flo-kernel
device/asus/grouper
device/asus/tilapia
device/common
device/generic/armv7-a-neon
device/generic/common
device/generic/goldfish
device/generic/mips
device/generic/mini-emulator-armv7-a-neon
device/generic/mini-emulator-mips
device/generic/mini-emulator-x86
device/generic/x86
device/google/accessory/arduino
device/google/accessory/demokit
device/lge/hammerhead
device/lge/hammerhead-kernel
device/lge/mako
device/lge/mako-kernel
device/sample
device/samsung/manta
docs/source.android.com
external/aac
external/android-clat
external/android-mock
external/ant-glob
external/antlr
external/apache-harmony
external/apache-http
external/apache-xml
external/arduino
external/bison
external/blktrace
external/bluetooth/bluedroid
external/bouncycastle
external/bsdiff
external/bzip2
external/ceres-solver
external/checkpolicy
external/chromium
external/chromium-libpac
external/chromium-trace
external/chromium_org
external/chromium_org/sdch/open-vcdiff
external/chromium_org/testing/gtest
external/chromium_org/third_party/WebKit
external/chromium_org/third_party/angle_dx11
external/chromium_org/third_party/eyesfree/src/android/java/src/com/googlecode/eyesfree/braille
external/chromium_org/third_party/freetype
external/chromium_org/third_party/icu
external/chromium_org/third_party/leveldatabase/src
external/chromium_org/third_party/libjingle/source/talk
external/chromium_org/third_party/libphonenumber/src/phonenumbers
external/chromium_org/third_party/libphonenumber/src/resources
external/chromium_org/third_party/mesa/src
external/chromium_org/third_party/openssl
external/chromium_org/third_party/opus/src
external/chromium_org/third_party/ots
external/chromium_org/third_party/skia/gyp
external/chromium_org/third_party/skia/include
external/chromium_org/third_party/skia/src
external/chromium_org/third_party/smhasher/src
external/chromium_org/third_party/yasm/source/patched-yasm
external/chromium_org/tools/grit
external/chromium_org/tools/gyp
external/chromium_org/v8
external/clang
external/compiler-rt
external/dexmaker
external/dhcpcd
external/dnsmasq
external/doclava
external/dropbear
external/droiddriver
external/e2fsprogs
external/easymock
external/eclipse-basebuilder
external/eclipse-windowbuilder
external/eigen
external/elfutils
external/embunit
external/emma
external/esd
external/expat
external/eyes-free
external/fdlibm
external/flac
external/freetype
external/fsck_msdos
external/ganymed-ssh2
external/gcc-demangle
external/genext2fs
external/giflib
external/google-diff-match-patch
external/grub
external/gtest
external/guava
external/hamcrest
external/harfbuzz
external/harfbuzz_ng
external/hyphenation
external/icu4c
external/iproute2
external/ipsec-tools
external/iptables
external/iputils
external/LaunchPPPoe
external/libifaddrs
external/pppoe
external/javasqlite
external/javassist
external/jdiff
external/jhead
external/jmdns
external/jmonkeyengine
external/jpeg
external/jsilver
external/jsr305
external/junit
external/kernel-headers
external/libcap-ng
external/libffi
external/libgsm
external/liblzf
external/libmtp
external/libnfc-nci
external/libnfc-nxp
external/libnl-headers
external/libogg
external/libpcap
external/libphonenumber
external/libpng
external/libppp
external/libselinux
external/libsepol
external/libusb
external/libusb-compat
external/libvorbis
external/libvpx
external/libxml2
external/libxslt
external/libyuv
external/linux-tools-perf
external/littlemock
external/wide-dhcpv6
external/llvm
external/lzma
external/marisa-trie
external/markdown
external/mdnsresponder
external/mesa3d
external/mksh
external/mockito
external/mockwebserver
external/mp4parser
external/mtpd
external/naver-fonts
external/netcat
external/netperf
external/neven
external/nist-pkits
external/nist-sip
external/noto-fonts
external/oauth
external/objenesis
external/okhttp
external/open-vcdiff
external/opencv
external/openfst
external/openssh
external/openssl
external/oprofile
external/pixman
external/ppp
external/proguard
external/protobuf
external/qemu
external/qemu-pc-bios
external/regex-re2
external/replicaisland
external/robolectric
external/safe-iop
external/scrypt
external/sepolicy
external/sfntly
external/sil-fonts
external/skia
external/smack
external/smali
external/sonivox
external/speex
external/sqlite
external/srec
external/srtp
external/stlport
external/strace
external/stressapptest
external/svox
external/tagsoup
external/tcpdump
external/timezonepicker-support
external/tinyalsa
external/tinycompress
external/tinyxml
external/tinyxml2
external/tremolo
external/v8
external/valgrind
external/webp
external/webrtc
external/wpa_supplicant_8
external/xmlwriter
external/xmp_toolkit
external/yaffs2
external/zlib
external/zxing
frameworks/av
frameworks/base
frameworks/compile/libbcc
frameworks/compile/mclinker
frameworks/compile/slang
frameworks/ex
frameworks/ml
frameworks/bluetooth
frameworks/native
frameworks/opt/calendar
frameworks/opt/colorpicker
frameworks/opt/datetimepicker
frameworks/opt/emoji
frameworks/opt/inputmethodcommon
frameworks/opt/mailcommon
frameworks/opt/mms
frameworks/opt/net/voip
frameworks/opt/photoviewer
frameworks/opt/timezonepicker
frameworks/opt/telephony
frameworks/opt/vcard
frameworks/rs
frameworks/support
frameworks/testing
frameworks/uiautomator
frameworks/volley
frameworks/webview
frameworks/wilhelm
hardware/akm
hardware/broadcom/libbt
hardware/broadcom/wlan
hardware/invensense
hardware/libhardware
hardware/libhardware_legacy
hardware/qcom/audio
hardware/qcom/bt
hardware/qcom/camera
hardware/qcom/display
hardware/qcom/keymaster
hardware/qcom/media
hardware/qcom/msm8960
hardware/qcom/msm8x74
hardware/qcom/power
hardware/qcom/wlan
hardware/ril
hardware/samsung_slsi/exynos5
hardware/ti/omap3
hardware/ti/omap4xxx
hardware/ti/wlan
hardware/ti/wpan
libcore
libnativehelper
ndk
kernel
mediatek
vendor
packages/providers/DrmProvider
packages/apps/DeviceTestApp
packages/apps/BasicSmsReceiver
packages/apps/Bluetooth
packages/apps/Browser
packages/apps/Calculator
packages/apps/Calendar
packages/apps/Camera
packages/apps/Camera2
packages/apps/CellBroadcastReceiver
packages/apps/CertInstaller
packages/apps/Contacts
packages/apps/ContactsCommon
packages/apps/DeskClock
packages/apps/Dialer
packages/apps/Email
packages/apps/Exchange
packages/apps/Gallery
packages/apps/Gallery2
packages/apps/HTMLViewer
packages/apps/InCallUI
packages/apps/KeyChain
packages/apps/Launcher2
packages/apps/Launcher3
packages/apps/LegacyCamera
packages/apps/Mms
packages/apps/Music
packages/apps/MusicFX
packages/apps/Nfc
packages/apps/OneTimeInitializer
packages/apps/PackageInstaller
packages/apps/PhoneCommon
packages/apps/Protips
packages/apps/Provision
packages/apps/QuickSearchBox
packages/apps/Settings
packages/apps/SoundRecorder
packages/apps/SpareParts
packages/apps/SpeechRecorder
packages/apps/Stk
packages/apps/Tag
packages/apps/UnifiedEmail
packages/apps/VideoEditor
packages/apps/VoiceDialer
packages/experimental
packages/inputmethods/LatinIME
packages/inputmethods/OpenWnn
packages/inputmethods/PinyinIME
packages/providers/ApplicationsProvider
packages/providers/CalendarProvider
packages/providers/ContactsProvider
packages/providers/DownloadProvider
packages/providers/MediaProvider
packages/providers/PartnerBookmarksProvider
packages/providers/TelephonyProvider
packages/providers/UserDictionaryProvider
packages/screensavers/Basic
packages/screensavers/PhotoTable
packages/screensavers/WebView
packages/services/Telephony
packages/wallpapers/Basic
packages/wallpapers/Galaxy4
packages/wallpapers/HoloSpiral
packages/wallpapers/LivePicker
packages/wallpapers/MagicSmoke
packages/wallpapers/MusicVisualization
packages/wallpapers/NoiseField
packages/wallpapers/PhaseBeam
pdk
prebuilts/clang/linux-x86/3.1
prebuilts/devtools
prebuilts/eclipse
prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6
prebuilts/gcc/darwin-x86/arm/arm-eabi-4.7
prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.6
prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.7
prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1
prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.6
prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.7
prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.6
prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.7
prebuilts/gcc/linux-x86/arm/arm-eabi-4.6
prebuilts/gcc/linux-x86/arm/arm-eabi-4.7
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7
prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.4.3
prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6
prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6
prebuilts/gcc/linux-x86/mips/mipsel-linux-android-4.6
prebuilts/gcc/linux-x86/mips/mipsel-linux-android-4.7
prebuilts/gcc/linux-x86/x86/i686-linux-android-4.6
prebuilts/gcc/linux-x86/x86/i686-linux-android-4.7
prebuilts/misc
prebuilts/ndk
prebuilts/python/darwin-x86/2.7.5
prebuilts/python/linux-x86/2.7.5
prebuilts/qemu-kernel
prebuilts/runtime
prebuilts/sdk
prebuilts/tools
sdk
system/mobile_toolkit
system/core
system/extras
system/media
system/netd
system/security
system/vold
tools/external/fat32lib
tools/external/gradle
tools/idea

6)编写初始化源码仓库脚本client_create.sh
vim client_create.sh 添加:
①适用于不带任何 .git 或者.svn 的纯净Android 源码

#/bin/bash

set -x

set -e

pwd=${PWD}

while read line; doline1=${line%%/*}
    if [ -z "$line" ]; then
        echo work_dir not exist !!! 1>&2
        continue
    fi

    if [ $(ls -A $pwd/$line | wc -l) -eq 0 ]; then
        echo work_dir empty !!! 1>&2
        continue
    fi

    workdir=$pwd/$line
    echo ==== $workdir
    cd $workdir
    rm -rf .git
    git init .  1>&2
    git add . -f 1>&2
    git commit -m "Initial commit" 1>&2

    if [ "$line1" = "device" ]; then
        git push --set-upstream git://192.168.100.249/yazuo/$line.git master
    elif [ "$line1" = "kernel" ]; then
        git push --set-upstream git://192.168.100.249/yazuo/$line.git master
    elif [ "$line1" = "mediatek" ]; then
        git push --set-upstream git://192.168.100.249/yazuo/$line.git master
    elif [ "$line1" = "vendor" ]; then
        git push --set-upstream git://192.168.100.249/yazuo/$line.git master
    else
        git push --set-upstream git://192.168.100.249/yazuo/platform/$line.git master
    fi

    cd -
done

②适合本身已有.git的android源码

#/bin/bash

set -x
set -e

pwd=${PWD}
while read line; do
    line1=${line%%/*}
    if [ -z "$line"  ]; then
        echo work_dir not exist !!! 1>&2
        continue
    fi
    if [ $(ls -A $pwd/$line | wc -l) -eq 0  ]; then
        echo work_dir empty !!! 1>&2
        continue
    fi
    workdir=$pwd/$line
    echo ==== $workdir
    cd $workdir
    git checkout -B master yazuo/master
    if [ "$line1" = "device"  ]; then
        git push --set-upstream git://192.168.100.249/yazuo/$line.git master
    elif [ "$line1" = "kernel"  ]; then
        git push --set-upstream git://192.168.100.249/yazuo/$line.git master
    elif [ "$line1" = "mediatek"  ]; then
        git push --set-upstream git://192.168.100.249/yazuo/$line.git master
    elif [ "$line1" = "vendor"  ]; then
        git push --set-upstream git://192.168.100.249/yazuo/$line.git master
    else
        git push --set-upstream git://192.168.100.249/yazuo/platform/$line.git master
    fi
    cd -
done

注意:
①之前写成了

 git push --set-upstream gitolite://192.168.100.249/yazuo/platform/$line.git master

报错:fatal: Unable to find remote helper for ‘gitolite’。犯了低级错误引以为戒!

②还有写成了

git push --set-upstream ssh://gitolite@192.168.100.249/yazuo/platform/$line.git master

也不行,这样写需要把所有的git工程都加到gitolite-admin/gitolite.conf文件中太麻烦!

7)初始化本地源码仓库,并推送到远程服务器仓库
【在xia私钥计算机上操作】
在本地android源码目录下执行下面命令:

cat client.txt | ./client_create.sh

耐心等待半小时左右,这样就把本地Android源码推送到服务器端的仓库中了。至此,服务器上的android源码版本库已经完全OK!

4.使用repo下载服务器上的android源码
(1)下载 git-repo
【在xia私钥计算机上操作】
在/home/xia目录下执行:

git clone https://gerrit.googlesource.com/git-repo git-repo.git 

如果上面的地址不行,自己就在网上搜一个可以下载的。

cd git-repo.git 
vim repo

修改 repo

REPO_URL = 'https://gerrit.googlesource.com/git-repo'
REPO_REV = 'stable'
改为 
REPO_URL = 'git://192.168.100.182/git-repo.git'  
REPO_REV = 'master'  

1)REPO_URL 指的是 repo 所调用和管理引用仓库

2)REPO_REV 指的是仓库分支,进入git-repo.git, 使用命令:git branch 查看,我的是 master 分支。

(2)将 git-repo.git 目录下的 repo 拷贝到 ~/bin/

mkdir ~/bin
cp repo ~/bin/
chmod 777 ~/bin/repo

(3)测试下载源码

cd ~/
mkdir yazuotest
cd yazuotest
repo init -u git://192.168.100.249/manifest.git 
repo sync

注意:可以用 -b 参数来指定某个manifest 分支。

repo init -u git://192.168.100.249/manifest.git -b master

等待同步完成,大功告成!!!

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值