web服务器 /
正文
linux下svn合并的shell脚本
2024-01-13 23:29
1839 浏览
评论(0)
字体大小:
linux下svn合并的shell脚本 未测试
#!/bin/bash
# svn合并脚本
# svn版本库地址
BRANCHES_URL=svn://xxx;
# 版本号
version=$1
if [[ $# == 0 ]]; then
usage;
exit;
fi
if [ $? -ne 0 ]; then
echo '版本号必须是数值'
exit
fi
echo '--------------------------------------[开始]--------------------------------------'
# 把要执行动作和对应文件的svn分支路径记录到临时文件中
svn log -r $version -qv $BRANCHES_URL | grep / | awk "{print \$1\$2}" > /tmp/svn_merge_info
i=1
for f in `cat /tmp/svn_merge_info`
do
# 获取执行的动作类型
svn_cmd=`expr substr $f 1 1`
f=`echo $f | sed -e "s/^.//"`
# 获取文件路径 如:/js/test.js (文件分支路如径:/branches/master/js/test.js | /trunk/js/test.js)
local_f=`echo $f | sed -e "s/\/branches\/[^/]*//" | sed -e "s/\/trunk//"`
case $svn_cmd in
A)
tmp="svn copy -r $version ${BRANCHES_URL}$f .$local_f"
;;
M)
tmp="svn merge -r $((version-1)):$version --ignore-ancestry $BRANCHES_URL$f .$local_f"
;;
D)
tmp="svn del .$local_f"
;;
*)
echo "暂不支持的命令"
exit
;;
esac
echo ''
echo "执行命令:$tmp"
echo ''
echo "结果:"
ttmp=`$tmp`
result=$?
echo $ttmp
echo ''
echo "----------------------------------------$i----------------------------------------"
i=`expr $i + 1`
done
# 获取分支名称
tmp_branche=`svn log $BRANCHES_URL -r $version -qv | tail -n 2 | head -n 1 | sed -r -e "s/.*branches\/([^/]*).*/\1/"`
branche=$tmp_branche
svn commit -m "从$branche分支的$version版本合并,并自动提交"
echo '--------------------------------------[结束]--------------------------------------'
本文发布于程序达人 ,转载请注明出处,谢谢合作
有 0 人认为有用
0 评论
共同学习,写下你的评论
相关热点文章推荐
Spring Boot文档翻译【转】
20661
2024-01-13 23:29
Spring Boot报java.lang.IllegalArgumentException:Property 'sqlSessionFactory' or 'sqlSessionTemplate'
16473
2024-01-13 23:29
SpringBoot 2.0 报错: Failed to configure a DataSource: 'url' attribute is not specified and no embe...
UploadiFive Documentation (api 说明文档)
9899
2024-01-13 23:29
svn: 目录中的条目从本地编码转换到 UTF8 失败 解决办法
5336
2024-01-13 23:29
解决Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile办法
4393
2024-01-13 23:29
程序达人 - chengxudaren.com
一个帮助开发者成长的社区
相关文章