shell脚本 svn更新和提交(mac liunx系统 可直接使用)

本文介绍了一种使用Shell脚本实现自动化SVN代码更新、目录复制、配置文件更新及提交的方案,通过定时任务定期执行脚本,实现代码的自动同步与部署,提高开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/bash
DATE=$(date +%x--%X)
currDate=$(date +%Y-%m-%d)
currDir=/Volumes/DataDisk/project
onDir=$currDir/aa
workDirs="$currDir/xx $currDir/xx1"
logDir=$currDir/log_pack_server
logPath=$logDir/$currDate".log"
index=0
svnType=“”
# currDir=$(pwd)

echo "更新源目录-----:"$onDir 
svn update $onDir
if [ ! -d $logDir ]; then
    echo "创建文件夹:"$logDir
    mkdir $logDir
fi
for file in $workDirs; do
    dataTimeTmp=$(date +%x--%X)
    echo -e $dataTimeTmp $file"\t========开始:" >> $logPath
    svn up $file
    rm -rf $file
    echo "copy目录内容"$file
    cp -rf $onDir $file
    cd $file
    echo "切换目录后svn准备操作"$file
    rm -rf database/config.ini script 
    svn up database/config.ini script 
#    svn st | awk '{if ($1 == "?"||$1 == "A") {print $2} }' | xargs -r svn add
    for stFile in `svn st`; do
        index=`expr $index + 1`
        if [ 0 == `expr $index % 2` ]
        then
            if [ $svnType == "A" ] || [ $svnType == "?" ]
            then
                svn add $stFile
            elseif [ $svnType == "!" ]
            then
                svn del $stFile
            fi
        else
            svnType=$stFile
        fi
    done
    svn commit -m "自动脚本版本合并" $file
    dataTimeTmp=$(date +%x--%X)
    echo -e $dataTimeTmp $file"\t完成!!" >> $logPath
done

DATE1=$(date +%x--%X)
echo -e "完成总时间范围: "${DATE}"\t=>"${DATE1}"<<====\n" >> $logPath
echo $DATE
echo $DATE1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值