码迷,mamicode.com
首页 > 系统相关 > 详细

svn 回滚到上一个版本shell 脚本

时间:2015-07-15 18:36:55      阅读:293      评论:0      收藏:0      [点我收藏+]

标签:

#!/bin/sh
##############################
#       2015-07-15           #
#   author jackluo           #
# Email net.webjoy@gmail.com #
##############################

version_list=$(svn log --limit 2|sed 1d|sed $d|awk -F | {print $1}|awk -v RS="" {gsub("\n","");print}) #找出最近的版本,并进行格式化
echo verions finding....
echo $version_list  #版本号 最近两个
rocback_version=$(svn log --limit 2|tac |sed -n 4p|awk {print $1}) #要回滚的前一个版本号
echo -e "\r\n"
echo Version number that you want to roll back
echo -e "\r\n"
echo $rocback_version #版本号
echo -e "\r\n"
echo are you sure of to  $rocback_version  Yes or No‘ #确定要回滚过去
echo -e "\r\n"
read answer  #读取用户输入
if [ $answer == "Yes" ]
then
        svn up -r $rocback_version #回滚代码
        echo -e "\r\n"
        echo Code is rocback is OK !!!^__^!!!

else
        echo "Abandoned operation program exit" #放弃操作
fi

1、保证我们拿到的是最新代码:

svn update

假设最新版本号是28。

2、然后找出要回滚的确切版本号:

svn log [somefile]

如果log很多,可以使用参数--limit

svn log --limit 10 [somefile]

假设根据svn log日志查出要回滚的版本号是25,此处的somefile可以是文件、目录或整个项目

如果想要更详细的了解情况,可以使用

svn diff -r 28:25 [somefile]

3、回滚到版本号25:

svn merge -r 28:25 [somefile]

为了保险起见,再次确认回滚的结果:

svn diff [somefile]

发现正确无误,提交。

4、提交回滚:

svn commit -m "Revert revision from r28 to r25,because of ..."

提交后版本变成了29。

将以上操作总结为三条如下:

1. svn update,svn log,找到最新版本(latest revision)

2. 找到自己想要回滚的版本号(rollback revision)

3. 用svn merge来回滚: svn merge -r 28:25 somefile

注意:虽然 svn up -r 25 somefile 也可以使文件回滚,但是当提交时由于不是最新版本而无法提交,还需要先更新,拷贝,再提交,所以不建议使用。

补充:

svn忽略文件或文件夹

svn propset svn:ignore ‘*‘ template_c/

svn 回滚到上一个版本shell 脚本

标签:

原文地址:http://www.cnblogs.com/jackluo/p/4649023.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!