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

#!/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/

时间: 2024-09-20 05:29:11

svn 回滚到上一个版本shell 脚本的相关文章

ajax-jsp中我用go(-1)回滚到上一页面,并且回滚后的当前页面刷新一次,要详细的!

问题描述 jsp中我用go(-1)回滚到上一页面,并且回滚后的当前页面刷新一次,要详细的! jsp中我用go(-1)回滚到上一页面,并且回滚后的当前页面刷新一次,要详细的,谢谢! 解决方案 history.go或者back后退页面是不会更新的,用response.redirect跳转到你的页面再加个时间戳参数防止缓存

script-请教一个linux shell脚本的意思

问题描述 请教一个linux shell脚本的意思 function maybe_prompt_user() { if $ASSUME_YES; then return 0 else read -p "$1" if [[ $REPLY =~ ^[Yy]$ ]]; then return 0 else return 1 fi fi } 这段脚本是什么意思,没太看明白,哪位高手指点一下,谢谢! 解决方案 =~ 表示正则match ^[Yy]$表示match y或者Y, laiconglin

linux版快盘上传下载shell脚本

安装使用 此脚本适用于大部分bash环境,已经在cygwin,ubuntu14.04,debian,centos6,mac-osx等环境通过测试. 1.依赖项 使用此程序前请确认你的Linux或者Cygwin支持如下命令: curl sed awk basename date grep tr od openssl base64 2.配置 如果你想使用自己的app_key你需要首先注册一个金山快盘账号,然后到这里地址创建一个你自己的应用并把得到的 consumer_key.consumer_sec

Shell脚本实现的基于SVN的代码提交量统计工具_linux shell

最近没啥事,就用bash写了一个基于svn的代码统计小工具. 可以指定统计的目录,默认递归统计子目录. 目前还没有屏蔽指定目录的功能.哈 代码比较粗糙.不过先晒出来. #!/bin/bash - #""""""""""""""""""""""""""

一个Linux系统安全设置的Shell脚本的分享(适用CentOS)_linux shell

我们将常用的系统安全配置制作为一个shell脚本,只需要在服务器上运行这个shell脚本即可完成安全设置. linux的系统安全设 置Shell脚本是第二次更新,已经大量应用在某大型媒体网站体系中,加入了之前没有想到的一些安全设置.使用方法将其复制,保存为一个shell文件, 比如security.sh.将其上传到Linux服务器上,执行sh security.sh,就可以使用该脚本了! 复制代码 代码如下: #!/bin/sh# desc: setup linux system securit

编写第一个Shell脚本

最近一直在看shell方面的资料,很乏味,也不知道看的效果,正好下午Linux群里一兄弟,提出了一个他们公司的需求,听了之后有点思绪,感觉应该可以写出来,个人的第一个Script就诞生... 需求:每天登陆服务器查看磁盘空间比较麻烦,所以就想利用一个脚本,用来检测系统磁盘空间,然后将结果通过邮件的形式发送到指定邮箱. Script内容如下: #!/bin/bash #2012/09/17 by Song #Email:XXX@163.com DiskNum=`df -h | grep sda1

《构建高可用Linux服务器 第3版》—— 第3章 生产环境下的Shell脚本

第3章 生产环境下的Shell脚本 虽然Shell脚本只是一个简单的解释型语言,不会受到开发人员的重视,但对于我们系统管理员来说它有着举足轻重的作用,它可以帮助我们简化日常的工作并减少工作量,成为系统管理员的瑞士军刀.我们在系统维护工作中用Shell脚本常常能比用C语言编写的程序更快地解决相同的问题.此外,Shell脚本具有很好的可移植性,有时跨越UNIX与POSIX兼容的系统,仅需略作修改,甚至不必修改即可使用Shell脚本. 在日常工作中Shell脚本能帮助我们做什么呢? 1)配合Cront

shell脚本学习指南[五](Arnold Robbins & Nelson H.F. Beebe著)_linux shell

作者告诉我们:到目前为止基础已经搞定,可以将前边所学结合shell变成进军中等难度的任务了.激动的要哭了,终于看到本书结束的曙光了 T T .码字比码代码还辛苦.不过令人兴奋的是立刻就学以致用了,花了一天半的时间处理了一个3.8G的服务器日志文件,你妹啊,破电脑内存才2G.不过切割化小然后写了几个awk文件和sh文件按规则处理合并,算是搞定了! 第十一章扩展实例:合并用户数据库 问题描述就是有两台UNIX的计算机系统,这两个系统现在要合并,用户群同样需要合并.有许多用户两台系统上都有帐号.现在合

什么是Shell?Shell脚本基础知识详细介绍_linux shell

Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. 它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序.建立文件并以并行的方式协调各个程序的运行.因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好L