- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
linux svn导出发布两版本之间代码文件
linux svn导出发布两版本之间代码文件项目实施, 发布代码工作也是其繁琐的(当然小型项目直接可以通过FTP方式上传),但在团队合作开发中,这个方式显然不能更好地打分支,回滚代码. ?自己动手写了一个基于bash方式进行自动发布导出svn两版本之间的文件shell脚本. 来进行代码发布.分享给大家,希望可以能大家在发布代码上带来一些方便.#!/bin/sh#导出指定版本之间的差异文件 如100到200之间的差异则导出100(不包括)-200(包括)的所有修改?SVN_URL=/project1?if?[ $# -eq 0 ] ; then echo?You must useage like $0 old_version1(不包括) new_version(包括) exit?1fi?if?[ $1 -gt?$2 ] ;?then echo?You must useage like $0 old_version1(不包括) new_version(包括) exit?1fi?OLD_VERSION=$1NEW_VERSION=$2?#导出的目标路径WORK_PATH=/usr/local/apache2.2/htdocs/?echo?开始分析版本差异...DIFF_URL=svn diff -r ${OLD_VERSION}:${NEW_VERSION} --summarize --username svn用户名 --password svn密码 ${SVN_URL}echo?${DIFF_URL}?if?test?! -e?${WORK_PATH};?then mkdir?-p ${WORK_PATH}fi#echo ${DIFF_URL}|sh ${WORK_PATH}_diff.txt?DIFF_NUM=`${DIFF_URL} |wc?-l`if?[ ${DIFF_NUM} -ne?0 ];?then echo?差异文件共${DIFF_NUM}个,准备导出. DIFF_LIST=`${DIFF_URL}` #echo ${DIFF_LIST} NUM=0 SKIP=0 for?FIELD?in?${DIFF_LIST} ;?do #长度小于3(A、M、D、AM即增加且修改)即是更新标识,否则为url if?[ ${#FIELD} -lt 3 ]; then let?NUM+=1 SKIP=0 if?[?${FIELD}?==?D?];?then #下一个应该跳过 SKIP=1 fi continue fi? #若为删除文件则不必导出 if?[ ${SKIP} -eq?1 ];?then echo?${NUM}.是删除操作,跳过:${FIELD} continue fi? #替换得到相对路径 DIFF_FILE=${FIELD//${SVN_URL}/} echo?${NUM}. ${DIFF_FILE}? FILE_NAME=`basename?${DIFF_FILE}` FOLDER_NAME=`dirname?${DIFF_FILE}` FOLDER_PATH=${WORK_PATH}${FOLDER_NAME} #echo ${FILE_NAME} ${FOLDER_NAME} ${FOLDER_PATH}? if?test?! -e?${FOLDER_PATH};?then mkdir?-p ${FOLDER_PATH} fi? CMD=svn export -r ${NEW_VERSION} ${SVN_URL}${DIFF_FILE} ?${FOLDER_PATH}/${FILE_NAME} --force #echo ${CMD} #echo ${NUM}. echo?${CMD}|sh done echo?-e?版本号:${OLD_VERSION}-${NEW_VERSION}?\t时间:?$(date?+%Y-%m-%d %H:%M:%S) /home/svn/push_logs.txt echo?完成else echo?版本间没有差异fi将文件保存到/bin/publish.sh,并为此文件添加可执行权限:chmod?+x /bin/publish.sh运行命令:publish.sh 1 100此命令作用是将svn版本库中版本号为2~100之间的版本文件到目标路径。
您可能关注的文档
最近下载
- 2011年一级水利水电工程管理与实务真题.doc VIP
- 港口规划与布置3 港口装卸工艺.ppt VIP
- 2025年广东省中考语文二轮复习《中考作文热点素材与运用示范》.pptx VIP
- 湖南省长沙市雨花区2023-2024学年四年级下学期期末考试数学试题.docx VIP
- 第1课 中华人民共和国成立 课件(共25张PPT)(含音频+视频).pptx VIP
- 舌下腺囊肿科普宣传课件.pptx VIP
- 马克思主义政治经济学概论(第二版)第十五章.ppt VIP
- 在线网课学习课堂《网络信息检索(西安科大 )》单元测试考核答案.docx
- 一例慢阻肺急性加重合并II型呼吸衰竭的个案护理.pptx
- 培训课件--防暑降温培训教材.ppt VIP
文档评论(0)