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

来源:互联网 发布:电脑模拟装机软件 编辑:程序博客网 时间:2024/05/20 21:22

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

一、安装准备
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

二、安装gitosis
1.下载gitosis到/tmp

cd /tmpgit clone https://github.com/tv42/gitosis.git

2.安装必备包

sudo apt-get install python-setuptools

3.安装gitosis

cd /tmp/gitosissudo python setup.py install

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

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

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

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

3.初始化配置【服务器执行】

sudo chmod 777 /tmp/id_rsa.pubsudo -H -u gitosis gitosis-init < /tmp/id_rsa.pub

以上命令有三个作用:
a)建立一个目录“~/repositories”,用来存储所有git仓库;
b)生成一个指向实际配置文件的软链接“~/.gitosis.conf”;
c)把公钥文件id_rsa.pub添加到 ~/.ssh/authorized_keys。

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

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

[group testingteam]members = lv@example.comwritable = testing

4.commit修改,push到服务器生效。
5.初始化仓库并push到服务器
【在lv私钥计算机上操作】

mkdir testingcd testinggit initgit remote add origin gitosis@192.168.100.249:testing.gitecho "init commit" > readme.txtgit add .git commit -m "init commit"git push origin master:refs/heads/master

五、搭建 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=trueGIT_DAEMON_USER=gitosisGIT_DAEMON_BASE_PATH=/home/gitosis/repositoriesGIT_DAEMON_DIRECTORY=/home/gitosis/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=gitosis 表示使用哪个用户运行git-daemon。
注意:设置的这个用户一定得对GIT_DAEMON_BASE_PATH有读,写,执行的所有权限!
3)GIT_DAEMON_BASE_PATH=/home/gitosis/repositories 设置根目录。
比如像我的这个设置,那么你在用git clone gitosis://192.168.100.249/test.git时,git服务器就会查找/home/gitosis/repositories/test.git目录了。
4)GIT_DAEMON_DIRECTORY=/home/gitosis/repositories 这个是设置成目录白名单whitelist。
如果不设置的话用户在git操作时如git clone,git push等等会出现no such directory。而在服务器机器上/var/log/syslog中会看到’/home/gitosis/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/gitosis/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私钥计算机上操作】
编辑本地gitosis-admin库里的gitosis.conf,添加:

[group manifest]members = xia@dyna-PowerEdge-R720writable = manifest

commit修改,push到服务器生效。
2)初始化仓库并push到服务器

mkdir manifestcd manifestgit initgit remote add origin gitosis@192.168.100.249:manifest.gitecho "init commit" > readme.txtgit add .git commit -m "init commit"git push origin master:refs/heads/master

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.xmlgit commit -m "add default.xml"git push origin master

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

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

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

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

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

[group manifest]- members = xia@dyna-PowerEdge-R720+ members = xia@dyna-PowerEdge-R720 berrywritable = manifest

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

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

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

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

sudo su - gitosiscd ~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/buildyazuo/platform/abi/cppyazuo/platform/artyazuo/platform/bionicyazuo/platform/bootable/bootloader/lkyazuo/platform/bootable/diskinstalleryazuo/platform/bootable/recoveryyazuo/platform/ctsyazuo/platform/dalvikyazuo/platform/developers/buildyazuo/platform/developers/samples/androidyazuo/platform/developmentyazuo/device/asus/debyazuo/device/asus/floyazuo/device/asus/flo-kernelyazuo/device/asus/grouperyazuo/device/asus/tilapiayazuo/device/commonyazuo/device/generic/armv7-a-neonyazuo/device/generic/commonyazuo/device/generic/goldfishyazuo/device/generic/mipsyazuo/device/generic/mini-emulator-armv7-a-neonyazuo/device/generic/mini-emulator-mipsyazuo/device/generic/mini-emulator-x86yazuo/device/generic/x86yazuo/device/google/accessory/arduinoyazuo/device/google/accessory/demokityazuo/device/lge/hammerheadyazuo/device/lge/hammerhead-kernelyazuo/device/lge/makoyazuo/device/lge/mako-kernelyazuo/device/sampleyazuo/device/samsung/mantayazuo/platform/docs/source.android.comyazuo/platform/external/aacyazuo/platform/external/android-clatyazuo/platform/external/android-mockyazuo/platform/external/ant-globyazuo/platform/external/antlryazuo/platform/external/apache-harmonyyazuo/platform/external/apache-httpyazuo/platform/external/apache-xmlyazuo/platform/external/arduinoyazuo/platform/external/bisonyazuo/platform/external/blktraceyazuo/platform/external/bluetooth/bluedroidyazuo/platform/external/bouncycastleyazuo/platform/external/bsdiffyazuo/platform/external/bzip2yazuo/platform/external/ceres-solveryazuo/platform/external/checkpolicyyazuo/platform/external/chromiumyazuo/platform/external/chromium-libpacyazuo/platform/external/chromium-traceyazuo/platform/external/chromium_orgyazuo/platform/external/chromium_org/sdch/open-vcdiffyazuo/platform/external/chromium_org/testing/gtestyazuo/platform/external/chromium_org/third_party/WebKityazuo/platform/external/chromium_org/third_party/angle_dx11yazuo/platform/external/chromium_org/third_party/eyesfree/src/android/java/src/com/googlecode/eyesfree/brailleyazuo/platform/external/chromium_org/third_party/freetypeyazuo/platform/external/chromium_org/third_party/icuyazuo/platform/external/chromium_org/third_party/leveldatabase/srcyazuo/platform/external/chromium_org/third_party/libjingle/source/talkyazuo/platform/external/chromium_org/third_party/libphonenumber/src/phonenumbersyazuo/platform/external/chromium_org/third_party/libphonenumber/src/resourcesyazuo/platform/external/chromium_org/third_party/mesa/srcyazuo/platform/external/chromium_org/third_party/opensslyazuo/platform/external/chromium_org/third_party/opus/srcyazuo/platform/external/chromium_org/third_party/otsyazuo/platform/external/chromium_org/third_party/skia/gypyazuo/platform/external/chromium_org/third_party/skia/includeyazuo/platform/external/chromium_org/third_party/skia/srcyazuo/platform/external/chromium_org/third_party/smhasher/srcyazuo/platform/external/chromium_org/third_party/yasm/source/patched-yasmyazuo/platform/external/chromium_org/tools/grityazuo/platform/external/chromium_org/tools/gypyazuo/platform/external/chromium_org/v8yazuo/platform/external/clangyazuo/platform/external/compiler-rtyazuo/platform/external/dexmakeryazuo/platform/external/dhcpcdyazuo/platform/external/dnsmasqyazuo/platform/external/doclavayazuo/platform/external/dropbearyazuo/platform/external/droiddriveryazuo/platform/external/e2fsprogsyazuo/platform/external/easymockyazuo/platform/external/eclipse-basebuilderyazuo/platform/external/eclipse-windowbuilderyazuo/platform/external/eigenyazuo/platform/external/elfutilsyazuo/platform/external/embunityazuo/platform/external/emmayazuo/platform/external/esdyazuo/platform/external/expatyazuo/platform/external/eyes-freeyazuo/platform/external/fdlibmyazuo/platform/external/flacyazuo/platform/external/freetypeyazuo/platform/external/fsck_msdosyazuo/platform/external/ganymed-ssh2yazuo/platform/external/gcc-demangleyazuo/platform/external/genext2fsyazuo/platform/external/giflibyazuo/platform/external/google-diff-match-patchyazuo/platform/external/grubyazuo/platform/external/gtestyazuo/platform/external/guavayazuo/platform/external/hamcrestyazuo/platform/external/harfbuzzyazuo/platform/external/harfbuzz_ngyazuo/platform/external/hyphenationyazuo/platform/external/icu4cyazuo/platform/external/iproute2yazuo/platform/external/ipsec-toolsyazuo/platform/external/iptablesyazuo/platform/external/iputilsyazuo/platform/external/LaunchPPPoeyazuo/platform/external/libifaddrsyazuo/platform/external/pppoeyazuo/platform/external/javasqliteyazuo/platform/external/javassistyazuo/platform/external/jdiffyazuo/platform/external/jheadyazuo/platform/external/jmdnsyazuo/platform/external/jmonkeyengineyazuo/platform/external/jpegyazuo/platform/external/jsilveryazuo/platform/external/jsr305yazuo/platform/external/junityazuo/platform/external/kernel-headersyazuo/platform/external/libcap-ngyazuo/platform/external/libffiyazuo/platform/external/libgsmyazuo/platform/external/liblzfyazuo/platform/external/libmtpyazuo/platform/external/libnfc-nciyazuo/platform/external/libnfc-nxpyazuo/platform/external/libnl-headersyazuo/platform/external/liboggyazuo/platform/external/libpcapyazuo/platform/external/libphonenumberyazuo/platform/external/libpngyazuo/platform/external/libpppyazuo/platform/external/libselinuxyazuo/platform/external/libsepolyazuo/platform/external/libusbyazuo/platform/external/libusb-compatyazuo/platform/external/libvorbisyazuo/platform/external/libvpxyazuo/platform/external/libxml2yazuo/platform/external/libxsltyazuo/platform/external/libyuvyazuo/platform/external/linux-tools-perfyazuo/platform/external/littlemockyazuo/platform/external/wide-dhcpv6yazuo/platform/external/llvmyazuo/platform/external/lzmayazuo/platform/external/marisa-trieyazuo/platform/external/markdownyazuo/platform/external/mdnsresponderyazuo/platform/external/mesa3dyazuo/platform/external/mkshyazuo/platform/external/mockitoyazuo/platform/external/mockwebserveryazuo/platform/external/mp4parseryazuo/platform/external/mtpdyazuo/platform/external/naver-fontsyazuo/platform/external/netcatyazuo/platform/external/netperfyazuo/platform/external/nevenyazuo/platform/external/nist-pkitsyazuo/platform/external/nist-sipyazuo/platform/external/noto-fontsyazuo/platform/external/oauthyazuo/platform/external/objenesisyazuo/platform/external/okhttpyazuo/platform/external/open-vcdiffyazuo/platform/external/opencvyazuo/platform/external/openfstyazuo/platform/external/opensshyazuo/platform/external/opensslyazuo/platform/external/oprofileyazuo/platform/external/pixmanyazuo/platform/external/pppyazuo/platform/external/proguardyazuo/platform/external/protobufyazuo/platform/external/qemuyazuo/platform/external/qemu-pc-biosyazuo/platform/external/regex-re2yazuo/platform/external/replicaislandyazuo/platform/external/robolectricyazuo/platform/external/safe-iopyazuo/platform/external/scryptyazuo/platform/external/sepolicyyazuo/platform/external/sfntlyyazuo/platform/external/sil-fontsyazuo/platform/external/skiayazuo/platform/external/smackyazuo/platform/external/smaliyazuo/platform/external/sonivoxyazuo/platform/external/speexyazuo/platform/external/sqliteyazuo/platform/external/srecyazuo/platform/external/srtpyazuo/platform/external/stlportyazuo/platform/external/straceyazuo/platform/external/stressapptestyazuo/platform/external/svoxyazuo/platform/external/tagsoupyazuo/platform/external/tcpdumpyazuo/platform/external/timezonepicker-supportyazuo/platform/external/tinyalsayazuo/platform/external/tinycompressyazuo/platform/external/tinyxmlyazuo/platform/external/tinyxml2yazuo/platform/external/tremoloyazuo/platform/external/v8yazuo/platform/external/valgrindyazuo/platform/external/webpyazuo/platform/external/webrtcyazuo/platform/external/wpa_supplicant_8yazuo/platform/external/xmlwriteryazuo/platform/external/xmp_toolkityazuo/platform/external/yaffs2yazuo/platform/external/zlibyazuo/platform/external/zxingyazuo/platform/frameworks/avyazuo/platform/frameworks/baseyazuo/platform/frameworks/compile/libbccyazuo/platform/frameworks/compile/mclinkeryazuo/platform/frameworks/compile/slangyazuo/platform/frameworks/exyazuo/platform/frameworks/mlyazuo/platform/frameworks/bluetoothyazuo/platform/frameworks/nativeyazuo/platform/frameworks/opt/calendaryazuo/platform/frameworks/opt/colorpickeryazuo/platform/frameworks/opt/datetimepickeryazuo/platform/frameworks/opt/emojiyazuo/platform/frameworks/opt/inputmethodcommonyazuo/platform/frameworks/opt/mailcommonyazuo/platform/frameworks/opt/mmsyazuo/platform/frameworks/opt/net/voipyazuo/platform/frameworks/opt/photovieweryazuo/platform/frameworks/opt/timezonepickeryazuo/platform/frameworks/opt/telephonyyazuo/platform/frameworks/opt/vcardyazuo/platform/frameworks/rsyazuo/platform/frameworks/supportyazuo/platform/frameworks/testingyazuo/platform/frameworks/uiautomatoryazuo/platform/frameworks/volleyyazuo/platform/frameworks/webviewyazuo/platform/frameworks/wilhelmyazuo/platform/hardware/akmyazuo/platform/hardware/broadcom/libbtyazuo/platform/hardware/broadcom/wlanyazuo/platform/hardware/invensenseyazuo/platform/hardware/libhardwareyazuo/platform/hardware/libhardware_legacyyazuo/platform/hardware/qcom/audioyazuo/platform/hardware/qcom/btyazuo/platform/hardware/qcom/camerayazuo/platform/hardware/qcom/displayyazuo/platform/hardware/qcom/keymasteryazuo/platform/hardware/qcom/mediayazuo/platform/hardware/qcom/msm8960yazuo/platform/hardware/qcom/msm8x74yazuo/platform/hardware/qcom/poweryazuo/platform/hardware/qcom/wlanyazuo/platform/hardware/rilyazuo/platform/hardware/samsung_slsi/exynos5yazuo/platform/hardware/ti/omap3yazuo/platform/hardware/ti/omap4xxxyazuo/platform/hardware/ti/wlanyazuo/platform/hardware/ti/wpanyazuo/platform/libcoreyazuo/platform/libnativehelperyazuo/platform/ndkyazuo/kernelyazuo/mediatekyazuo/vendoryazuo/platform/packages/providers/DrmProvideryazuo/platform/packages/apps/DeviceTestAppyazuo/platform/packages/apps/BasicSmsReceiveryazuo/platform/packages/apps/Bluetoothyazuo/platform/packages/apps/Browseryazuo/platform/packages/apps/Calculatoryazuo/platform/packages/apps/Calendaryazuo/platform/packages/apps/Camerayazuo/platform/packages/apps/Camera2yazuo/platform/packages/apps/CellBroadcastReceiveryazuo/platform/packages/apps/CertInstalleryazuo/platform/packages/apps/Contactsyazuo/platform/packages/apps/ContactsCommonyazuo/platform/packages/apps/DeskClockyazuo/platform/packages/apps/Dialeryazuo/platform/packages/apps/Emailyazuo/platform/packages/apps/Exchangeyazuo/platform/packages/apps/Galleryyazuo/platform/packages/apps/Gallery2yazuo/platform/packages/apps/HTMLVieweryazuo/platform/packages/apps/InCallUIyazuo/platform/packages/apps/KeyChainyazuo/platform/packages/apps/Launcher2yazuo/platform/packages/apps/Launcher3yazuo/platform/packages/apps/LegacyCamerayazuo/platform/packages/apps/Mmsyazuo/platform/packages/apps/Musicyazuo/platform/packages/apps/MusicFXyazuo/platform/packages/apps/Nfcyazuo/platform/packages/apps/OneTimeInitializeryazuo/platform/packages/apps/PackageInstalleryazuo/platform/packages/apps/PhoneCommonyazuo/platform/packages/apps/Protipsyazuo/platform/packages/apps/Provisionyazuo/platform/packages/apps/QuickSearchBoxyazuo/platform/packages/apps/Settingsyazuo/platform/packages/apps/SoundRecorderyazuo/platform/packages/apps/SparePartsyazuo/platform/packages/apps/SpeechRecorderyazuo/platform/packages/apps/Stkyazuo/platform/packages/apps/Tagyazuo/platform/packages/apps/UnifiedEmailyazuo/platform/packages/apps/VideoEditoryazuo/platform/packages/apps/VoiceDialeryazuo/platform/packages/experimentalyazuo/platform/packages/inputmethods/LatinIMEyazuo/platform/packages/inputmethods/OpenWnnyazuo/platform/packages/inputmethods/PinyinIMEyazuo/platform/packages/providers/ApplicationsProvideryazuo/platform/packages/providers/CalendarProvideryazuo/platform/packages/providers/ContactsProvideryazuo/platform/packages/providers/DownloadProvideryazuo/platform/packages/providers/MediaProvideryazuo/platform/packages/providers/PartnerBookmarksProvideryazuo/platform/packages/providers/TelephonyProvideryazuo/platform/packages/providers/UserDictionaryProvideryazuo/platform/packages/screensavers/Basicyazuo/platform/packages/screensavers/PhotoTableyazuo/platform/packages/screensavers/WebViewyazuo/platform/packages/services/Telephonyyazuo/platform/packages/wallpapers/Basicyazuo/platform/packages/wallpapers/Galaxy4yazuo/platform/packages/wallpapers/HoloSpiralyazuo/platform/packages/wallpapers/LivePickeryazuo/platform/packages/wallpapers/MagicSmokeyazuo/platform/packages/wallpapers/MusicVisualizationyazuo/platform/packages/wallpapers/NoiseFieldyazuo/platform/packages/wallpapers/PhaseBeamyazuo/platform/pdkyazuo/platform/prebuilts/clang/linux-x86/3.1yazuo/platform/prebuilts/devtoolsyazuo/platform/prebuilts/eclipseyazuo/platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6yazuo/platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.7yazuo/platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.6yazuo/platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.7yazuo/platform/prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1yazuo/platform/prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.6yazuo/platform/prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.7yazuo/platform/prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.6yazuo/platform/prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.7yazuo/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6yazuo/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7yazuo/platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6yazuo/platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7yazuo/platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.4.3yazuo/platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6yazuo/platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6yazuo/platform/prebuilts/gcc/linux-x86/mips/mipsel-linux-android-4.6yazuo/platform/prebuilts/gcc/linux-x86/mips/mipsel-linux-android-4.7yazuo/platform/prebuilts/gcc/linux-x86/x86/i686-linux-android-4.6yazuo/platform/prebuilts/gcc/linux-x86/x86/i686-linux-android-4.7yazuo/platform/prebuilts/miscyazuo/platform/prebuilts/ndkyazuo/platform/prebuilts/python/darwin-x86/2.7.5yazuo/platform/prebuilts/python/linux-x86/2.7.5yazuo/platform/prebuilts/qemu-kernelyazuo/platform/prebuilts/runtimeyazuo/platform/prebuilts/sdkyazuo/platform/prebuilts/toolsyazuo/platform/sdkyazuo/platform/system/mobile_toolkityazuo/platform/system/coreyazuo/platform/system/extrasyazuo/platform/system/mediayazuo/platform/system/netdyazuo/platform/system/securityyazuo/platform/system/voldyazuo/platform/tools/external/fat32libyazuo/platform/tools/external/gradleyazuo/platform/tools/idea

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

vim server_create.sh 添加
#/bin/bashset -xset -epwd=${PWD}cd /home/gitosis/repositorieswhile read line; do    if [ -z "$line" ]; then        echo work_dir not exist !!! 1>&2        continue    fi    git init --bare $line.git    echo ==== $line    pwddone

4)初始化空的源码仓库
【在服务器上使用gitosis用户操作】
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

buildabi/cppartbionicbootable/bootloader/lkbootable/diskinstallerbootable/recoveryctsdalvikdevelopers/builddevelopers/samples/androiddevelopmentdevice/asus/debdevice/asus/flodevice/asus/flo-kerneldevice/asus/grouperdevice/asus/tilapiadevice/commondevice/generic/armv7-a-neondevice/generic/commondevice/generic/goldfishdevice/generic/mipsdevice/generic/mini-emulator-armv7-a-neondevice/generic/mini-emulator-mipsdevice/generic/mini-emulator-x86device/generic/x86device/google/accessory/arduinodevice/google/accessory/demokitdevice/lge/hammerheaddevice/lge/hammerhead-kerneldevice/lge/makodevice/lge/mako-kerneldevice/sampledevice/samsung/mantadocs/source.android.comexternal/aacexternal/android-clatexternal/android-mockexternal/ant-globexternal/antlrexternal/apache-harmonyexternal/apache-httpexternal/apache-xmlexternal/arduinoexternal/bisonexternal/blktraceexternal/bluetooth/bluedroidexternal/bouncycastleexternal/bsdiffexternal/bzip2external/ceres-solverexternal/checkpolicyexternal/chromiumexternal/chromium-libpacexternal/chromium-traceexternal/chromium_orgexternal/chromium_org/sdch/open-vcdiffexternal/chromium_org/testing/gtestexternal/chromium_org/third_party/WebKitexternal/chromium_org/third_party/angle_dx11external/chromium_org/third_party/eyesfree/src/android/java/src/com/googlecode/eyesfree/brailleexternal/chromium_org/third_party/freetypeexternal/chromium_org/third_party/icuexternal/chromium_org/third_party/leveldatabase/srcexternal/chromium_org/third_party/libjingle/source/talkexternal/chromium_org/third_party/libphonenumber/src/phonenumbersexternal/chromium_org/third_party/libphonenumber/src/resourcesexternal/chromium_org/third_party/mesa/srcexternal/chromium_org/third_party/opensslexternal/chromium_org/third_party/opus/srcexternal/chromium_org/third_party/otsexternal/chromium_org/third_party/skia/gypexternal/chromium_org/third_party/skia/includeexternal/chromium_org/third_party/skia/srcexternal/chromium_org/third_party/smhasher/srcexternal/chromium_org/third_party/yasm/source/patched-yasmexternal/chromium_org/tools/gritexternal/chromium_org/tools/gypexternal/chromium_org/v8external/clangexternal/compiler-rtexternal/dexmakerexternal/dhcpcdexternal/dnsmasqexternal/doclavaexternal/dropbearexternal/droiddriverexternal/e2fsprogsexternal/easymockexternal/eclipse-basebuilderexternal/eclipse-windowbuilderexternal/eigenexternal/elfutilsexternal/embunitexternal/emmaexternal/esdexternal/expatexternal/eyes-freeexternal/fdlibmexternal/flacexternal/freetypeexternal/fsck_msdosexternal/ganymed-ssh2external/gcc-demangleexternal/genext2fsexternal/giflibexternal/google-diff-match-patchexternal/grubexternal/gtestexternal/guavaexternal/hamcrestexternal/harfbuzzexternal/harfbuzz_ngexternal/hyphenationexternal/icu4cexternal/iproute2external/ipsec-toolsexternal/iptablesexternal/iputilsexternal/LaunchPPPoeexternal/libifaddrsexternal/pppoeexternal/javasqliteexternal/javassistexternal/jdiffexternal/jheadexternal/jmdnsexternal/jmonkeyengineexternal/jpegexternal/jsilverexternal/jsr305external/junitexternal/kernel-headersexternal/libcap-ngexternal/libffiexternal/libgsmexternal/liblzfexternal/libmtpexternal/libnfc-nciexternal/libnfc-nxpexternal/libnl-headersexternal/liboggexternal/libpcapexternal/libphonenumberexternal/libpngexternal/libpppexternal/libselinuxexternal/libsepolexternal/libusbexternal/libusb-compatexternal/libvorbisexternal/libvpxexternal/libxml2external/libxsltexternal/libyuvexternal/linux-tools-perfexternal/littlemockexternal/wide-dhcpv6external/llvmexternal/lzmaexternal/marisa-trieexternal/markdownexternal/mdnsresponderexternal/mesa3dexternal/mkshexternal/mockitoexternal/mockwebserverexternal/mp4parserexternal/mtpdexternal/naver-fontsexternal/netcatexternal/netperfexternal/nevenexternal/nist-pkitsexternal/nist-sipexternal/noto-fontsexternal/oauthexternal/objenesisexternal/okhttpexternal/open-vcdiffexternal/opencvexternal/openfstexternal/opensshexternal/opensslexternal/oprofileexternal/pixmanexternal/pppexternal/proguardexternal/protobufexternal/qemuexternal/qemu-pc-biosexternal/regex-re2external/replicaislandexternal/robolectricexternal/safe-iopexternal/scryptexternal/sepolicyexternal/sfntlyexternal/sil-fontsexternal/skiaexternal/smackexternal/smaliexternal/sonivoxexternal/speexexternal/sqliteexternal/srecexternal/srtpexternal/stlportexternal/straceexternal/stressapptestexternal/svoxexternal/tagsoupexternal/tcpdumpexternal/timezonepicker-supportexternal/tinyalsaexternal/tinycompressexternal/tinyxmlexternal/tinyxml2external/tremoloexternal/v8external/valgrindexternal/webpexternal/webrtcexternal/wpa_supplicant_8external/xmlwriterexternal/xmp_toolkitexternal/yaffs2external/zlibexternal/zxingframeworks/avframeworks/baseframeworks/compile/libbccframeworks/compile/mclinkerframeworks/compile/slangframeworks/exframeworks/mlframeworks/bluetoothframeworks/nativeframeworks/opt/calendarframeworks/opt/colorpickerframeworks/opt/datetimepickerframeworks/opt/emojiframeworks/opt/inputmethodcommonframeworks/opt/mailcommonframeworks/opt/mmsframeworks/opt/net/voipframeworks/opt/photoviewerframeworks/opt/timezonepickerframeworks/opt/telephonyframeworks/opt/vcardframeworks/rsframeworks/supportframeworks/testingframeworks/uiautomatorframeworks/volleyframeworks/webviewframeworks/wilhelmhardware/akmhardware/broadcom/libbthardware/broadcom/wlanhardware/invensensehardware/libhardwarehardware/libhardware_legacyhardware/qcom/audiohardware/qcom/bthardware/qcom/camerahardware/qcom/displayhardware/qcom/keymasterhardware/qcom/mediahardware/qcom/msm8960hardware/qcom/msm8x74hardware/qcom/powerhardware/qcom/wlanhardware/rilhardware/samsung_slsi/exynos5hardware/ti/omap3hardware/ti/omap4xxxhardware/ti/wlanhardware/ti/wpanlibcorelibnativehelperndkkernelmediatekvendorpackages/providers/DrmProviderpackages/apps/DeviceTestApppackages/apps/BasicSmsReceiverpackages/apps/Bluetoothpackages/apps/Browserpackages/apps/Calculatorpackages/apps/Calendarpackages/apps/Camerapackages/apps/Camera2packages/apps/CellBroadcastReceiverpackages/apps/CertInstallerpackages/apps/Contactspackages/apps/ContactsCommonpackages/apps/DeskClockpackages/apps/Dialerpackages/apps/Emailpackages/apps/Exchangepackages/apps/Gallerypackages/apps/Gallery2packages/apps/HTMLViewerpackages/apps/InCallUIpackages/apps/KeyChainpackages/apps/Launcher2packages/apps/Launcher3packages/apps/LegacyCamerapackages/apps/Mmspackages/apps/Musicpackages/apps/MusicFXpackages/apps/Nfcpackages/apps/OneTimeInitializerpackages/apps/PackageInstallerpackages/apps/PhoneCommonpackages/apps/Protipspackages/apps/Provisionpackages/apps/QuickSearchBoxpackages/apps/Settingspackages/apps/SoundRecorderpackages/apps/SparePartspackages/apps/SpeechRecorderpackages/apps/Stkpackages/apps/Tagpackages/apps/UnifiedEmailpackages/apps/VideoEditorpackages/apps/VoiceDialerpackages/experimentalpackages/inputmethods/LatinIMEpackages/inputmethods/OpenWnnpackages/inputmethods/PinyinIMEpackages/providers/ApplicationsProviderpackages/providers/CalendarProviderpackages/providers/ContactsProviderpackages/providers/DownloadProviderpackages/providers/MediaProviderpackages/providers/PartnerBookmarksProviderpackages/providers/TelephonyProviderpackages/providers/UserDictionaryProviderpackages/screensavers/Basicpackages/screensavers/PhotoTablepackages/screensavers/WebViewpackages/services/Telephonypackages/wallpapers/Basicpackages/wallpapers/Galaxy4packages/wallpapers/HoloSpiralpackages/wallpapers/LivePickerpackages/wallpapers/MagicSmokepackages/wallpapers/MusicVisualizationpackages/wallpapers/NoiseFieldpackages/wallpapers/PhaseBeampdkprebuilts/clang/linux-x86/3.1prebuilts/devtoolsprebuilts/eclipseprebuilts/gcc/darwin-x86/arm/arm-eabi-4.6prebuilts/gcc/darwin-x86/arm/arm-eabi-4.7prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.6prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.7prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.6prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.7prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.6prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.7prebuilts/gcc/linux-x86/arm/arm-eabi-4.6prebuilts/gcc/linux-x86/arm/arm-eabi-4.7prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.4.3prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6prebuilts/gcc/linux-x86/mips/mipsel-linux-android-4.6prebuilts/gcc/linux-x86/mips/mipsel-linux-android-4.7prebuilts/gcc/linux-x86/x86/i686-linux-android-4.6prebuilts/gcc/linux-x86/x86/i686-linux-android-4.7prebuilts/miscprebuilts/ndkprebuilts/python/darwin-x86/2.7.5prebuilts/python/linux-x86/2.7.5prebuilts/qemu-kernelprebuilts/runtimeprebuilts/sdkprebuilts/toolssdksystem/mobile_toolkitsystem/coresystem/extrassystem/mediasystem/netdsystem/securitysystem/voldtools/external/fat32libtools/external/gradletools/idea

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

#/bin/bashset -xset -epwd=${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/bashset -xset -epwd=${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 gitosis://192.168.100.249/yazuo/platform/$line.git master

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

②还有写成了

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

也不行,这样写需要把所有的git工程都加到gitosis-admin/gitosis.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 ~/bincp repo ~/bin/chmod 777 ~/bin/repo

(3)测试下载源码

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

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

1 0
原创粉丝点击