美文网首页
repo日常使用技巧

repo日常使用技巧

作者: DD_Dog | 来源:发表于2019-08-05 17:12 被阅读0次

    在添加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
    

    安静得等待吧,哈哈!!

    相关文章

      网友评论

          本文标题:repo日常使用技巧

          本文链接:https://www.haomeiwen.com/subject/enomdctx.html