svn代码回滚命令

取消对代码的修改分为两种情况:
第一种情况:改动没有被提交(commit)。
这种情况下,使用svn revert就能取消之前的修改。
svn revert用法如下:
# svn revert [-R] something
其中something可以是(目录或文件的)相对路径也可以是绝对路径。
当something为单个文件时,直接svn revert something就行了;当something为目录时,需要加上参数-R(Recursive,递归),否则只会将something这个目录的改动。
在这种情况下也可以使用svn update命令来取消对之前的修改,但不建议使用。因为svn update会去连接仓库服务器,耗费时间。
注意:svn revert本身有固有的危险,因为它的目的是放弃未提交的修改。一旦你选择了恢复,Subversion没有方法找回未提交的修改。
第二种情况:改动已经被提交(commit)。
这种情况下,用svn merge命令来进行回滚。
   回滚的操作过程如下:
   1、保证我们拿到的是最新代码:
     svn update
     假设最新版本号是28。
   2、然后找出要回滚的确切版本号:
     svn log [something]
     假设根据svn log日志查出要回滚的版本号是25,此处的something可以是文件、目录或整个项目
     如果想要更详细的了解情况,可以使用svn diff -r 28:25 [something]
   3、回滚到版本号25:
       svn merge -r 28:25 something
     为了保险起见,再次确认回滚的结果:
       svn diff [something]
     发现正确无误,提交。
   4、提交回滚:
     svn commit -m "Revert revision from r28 to r25,because of ..."
     提交后版本变成了29。
   将以上操作总结为三条如下:
   1. svn update,svn log,找到最新版本(latest revision)
   2. 找到自己想要回滚的版本号(rollbak revision)
   3. 用svn merge来回滚: svn merge -r : something

Linux下SVN服务器搭建(CentOS+Subversion)

svn(subversion) 是近年来崛起的版本管理工具,是CVS的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。svn服务器有2种运行方式:独立服务器和借 助apache等web服务器。两种方式各有利弊。svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据, 所以还是FSFS方式更安全一点。 本文主要介绍SVN独立服务器的的安装和简单配置: 安装(centos下yum即可方便的完成安装) # yum install subversion 测试安装是否成功: # svnserve --version      回车显示版本说明安装成功 建立版本库 # mkdir /svndata              创建svn数据目录(目录可自行制定) # svnadmin create /svndata/kuming                  kuming就是版本库的名字,可以改变! 配置svn配置文件(为了方便管理,这里多个库调用相同的配置文件。) #每个版本库创建之后都会生成svnserve.conf主配文件 # vim /svndata/kuming/conf/svnserve.conf [general] anon-access = none auth-access = write password-db = /svndata/conf/passwd authz-db = /svndata/conf/authz realm =kuming# mkdir /svndata/conf # vim /svndata/conf/passwd      //svn用户配置文件 [users] user1 = password1 user2 = password2 user3 = password3 user4 = password4# vim /svndata/conf/authz      //svn权限控制配置文件 [groups] #设置组 group1 = user1,user2 #多用户用逗号隔开 [/] #根目录权限设置(就是“kuming”这个文件夹) user3 = rw #用户1权限是:可读写 user4 = r #用户2权限是:可读,不可写 user = #什么都没写代表没有任何权限 @group1 = rw #设置组权限 [kuming:/123] #设置根目录下“123”文件夹的权限 #说明“123”这个文件件怎么创建?这是在SVN服务器配置好之后,创建一个权限很高的用户在客户端登录SVN #然后创建一个文件夹“123”。启动服务器 # svnserve -d -r /svndata -d表示以daemon方式(后台运行)运行 -r /svndata指定根目录是/svndata 关闭SVN 服务器 # killall svnserve # ps aux | grep svnserve    查看服务,端口:3690 客户端使用的软件是TortoiseSVN 浏览方法: 打开版本库浏览器输入:svn://ip-addr/kuming/文件夹名 下面是随便折腾一个小脚本用来管理服务器的启动、重启、停止等操作 # vim svn # chmod +x svn #!/bin/bash case "$1" in start) svnserve -d -r /svndata svnport=`netstat -natp | grep svnserve | awk -F: '{print $4}' | awk 'NR==1'` if [ $svnport -eq 3690 ] then echo "SVN Server Already Runnning. Port:3690" else echo "SVN Server Does Not Start" fi ;; reload) svnport=`netstat -natp | grep svnserve | awk -F: '{print $4}' | awk 'NR==1'` if [ $svnport -eq 3690 ] then killall svnserve && svnserve -d -r /svndata echo "Reload OK" else echo "SVN Server Is Not Running" fi ;; stop) killall svnserve echo "SVN Server Has Been Stopped" ;; status) svnport=`netstat -natp | grep svnserve | awk -F: '{print $4}' | awk 'NR==1'` pid=`ps aux | grep svnserve | grep -v "grep" | awk '{print $2}'` if [ $svnport -eq 3690 ] then echo "SVN Server (pid:$pid) 正在运行..." else echo "SVN Server 停止运行..." fi ;; *) echo "$0: Usage: $0 {start|status|stop|reload}" exit 1 ;; esac该脚本使用方法我想应该不用多说了,全文完。 转自: http://diandian.yulei.cc/post/2011-09-02/4633008