repo日常使用技巧

2019-08-05  本文已影响0人  DD_Dog

在添加repo源码仓库的时候,由于仓库非常多,如果手动去添加,一天就过去了。这里记录下使用的几个小脚本,节省一些时间。

一、首先创建manifest.xml文件

这一步因各种项目而异,一般需要手动去写,没办法省力

二、git服务器创建仓库

manifest.xml创建好后,repo仓库要先提交。
之后需要在gitolite服务器上建立所有的仓库,步骤如下:

  1. 使用如下命令生成src.txt
    cat manifest.xml | cut -d '"' -f 2 > src.txt

  2. 批量写入仓库配置
    gitolite-admin/conf目录下运行命令cat src.txt | ./con-tools.sh
    con-tools.sh如下:

#/bin/bash

set -x #追踪代码执行情况
set -e #当脚本执行出现意料之外的情况时,立即退出,避免错误被忽略,导致最终结果不正确

work_dir=$1 #传入的第一个参数

pwd=${PWD}
echo $pwd start create gitrepo...
while read line; do
        echo repo $line >> gitolite.conf  #仓库名称
        echo     RW+     =   @user >> gitolite.conf  #权限配置
done

之后提交即可。

  1. 服务器端上传源码
    拷贝manifest.xml和init.sh到源码目录下,运行./init.sh manifest.xml即可
    init.sh文件如下:
#/bin/bash

set -x #追踪代码执行情况
set -e #当脚本执行出现意料之外的情况时,立即退出,避免错误被忽略,导致最终结果不正确

work_dir=$1 #传入的第一个参数
param_xml=$1 #传入的第一个参数

cat $param_xml |while read line;do
        if [[ ${line:1:7} = "project" ]]  #判断是否为project标签,if与[一定要有空格
        then
            echo $line | cut -d '"' -f 4 >> pro-name.txt
        else
            continue
        fi
done

pwd=${PWD}
cat pro-name.txt | while read line; do
    echo readline
    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
        rm -rf .git
        git init .  1>&2
        git add . -f 1>&2
        git commit -m "Initial commit" 1>&2
        //gitolite@192.168.1.104:/android/platform/9820e/根据实际路径来修改
        git push --set-upstream gitolite@192.168.1.104:/android/platform/9820e/$line.git master --force
#        fi
    cd -
done

rm pro-name.txt

安静得等待吧,哈哈!!

上一篇下一篇

猜你喜欢

热点阅读