#!/bin/sh
##############################
# -- #
# author jackluo #
# Email net.webjoy@gmail.com #
############################## version_list=$(svn log --limit |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 |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 脚本的更多相关文章

  1. git 本地回滚到上一个版本

    linux下是 git reset --hard HEAD^ windows下是 git reset --hard HEAD"^"

  2. github for windows回滚到某一个版本,

    建议先学会使用git命令再学GUI版的git,git本来就是命令行程序,GUI本质就是执行一些命令.仅从一些icon和单词去理解一些操作难免会有偏差.而反过来,熟悉命令会更好地理解GUI操作.想要回滚 ...

  3. git 回滚到上个版本命令以及忽略某些文件提交

    1.git回滚到上个版本 git reset --hard FETCH_HEAD 2.git忽略某些文件的提交 以前是用默认的.gitignore 然后再里面默认某些文件不提交.但是有个问题,.git ...

  4. svn回滚到某一版本

    svn回滚到某一版本 (1)在代码文件夹或vs中show log,查看历史,记住想要回滚到的版本号如1000 (2)新建文件夹,右击svn checkout,在revision中输入版本号1000

  5. git回滚到任意一个版本

    1.首先查找提交的记录(-3表示显示最近的3条) git log -3 2.强制回滚到制定版本 git reset --hard 制定版本commitId 如:git reset --hard 4ba ...

  6. git回滚到上一版本

    git reset --hard HEAD~1

  7. git,提交错了分支,想把远程的分支恢复到上一个版本

    1.先将本地分支回滚到上一个版本 2.删除远程分支(可以先备份一下) 3.创建新的分支,将本地分支push上去

  8. 持续集成之⑤:jenkins结合脚本实现代码自动化部署及一键回滚至上一版本

    持续集成之⑤:jenkins结合脚本实现代码自动化部署及一键回滚至上一版本 一:本文通过jenkins调用shell脚本的的方式完成从Git服务器获取代码.打包.部署到web服务器.将web服务器从负 ...

  9. jenkins结合脚本实现代码自动化部署及一键回滚至上一版本

    持续集成之⑤:jenkins结合脚本实现代码自动化部署及一键回滚至上一版本 一:本文通过jenkins调用shell脚本的的方式完成从Git服务器获取代码.打包.部署到web服务器.将web服务器从负 ...

随机推荐

  1. IOS 100 - 1 开工闲聊

    1 前言 现在的行情,作为码农,ios 普遍比c# 的待遇好上不少.感觉就如清洁工人,扫厕所干的再高效和干净,一个月就那么点微薄的收入.当然你可以选择去香港打扫卫生间,那里的行情据说清洁工也破万了.说 ...

  2. C# 令某个窗体可跟着鼠标移动

    /// <summary> /// 使窗口的中的指定控件支持运行时移动 /// TODO:运行时缩放 /// </summary> public class ControlMo ...

  3. C中的野指针—如何避免

    转自:http://www.cnblogs.com/viviwind/archive/2012/08/14/2638810.html 先看一个例子: struct student{ char* nam ...

  4. Zigzag

    date: 2015-09-24 21:09:00 Print Zigzag 思路: 1 首先是按行输出,每行输出相同位置的下一间隔为row*2-2,行游标0 初始化时(每一行的首个斜向部分),j=i ...

  5. 强化的单例属性_Effective Java

    Singleton指的是仅仅被实例化一次的类,比如唯一的系统组件等,成为Singleton的类测试起来也比较困难. 常用的方法: 1.公有静态final域+私有构造器 public class Egg ...

  6. Java学习笔记(九)——继承

    一.继承 1.概念: 继承是类于类之间的关系,是一种"is a "的关系 Ps: Java是单继承 2.优势: (1)子类直接拥有父类的所有属性和方法(除了privata) (2) ...

  7. Android px、dp、sp之间相互转换

    dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVGA和QVGA 推荐使用这个,不依赖 ...

  8. SQLserver删除某数据库中所有表 方法 二

    方便删除数据库中所有的数据表,清空数据库,有些有约束,不能直接delete,需要先删除库中的约束,代码如下: --删除所有约束DECLARE c1 cursor for select 'alter t ...

  9. 把textarea右下角的灰点去掉

    这个是浏览器自带功能,那个区域属于滚动条的占位区 使textarea可以调整size,加 style="resize:none"可解决,添加多行文字时还是会出现滚动条的.

  10. 给img添加类名可以动态切换图片

    <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...