取消对代码的修改分为两种情况:

第一种情况:改动没有被提交(commit)。

这种情况下,使用svnrevert就能取消之前的修改。

svn revert用法如下:

#svn revert[-R] something

其中something可以是(目录或文件的)相对路径也可以是绝对路径。

当something为单个文件时,直接svn revertsomething就行了;当something为目录时,需要加上参数-R(Recursive,递归),否则只会将something这个目录的改动。

在这种情况下也可以使用svnupdate命令来取消对之前的修改,但不建议使用。因为svnupdate会去连接仓库服务器,耗费时间。

注意:svn revert本身有固有的危险,因为它的目的是放弃未提交的修改。一旦你选择了恢复,Subversion没有方法找回未提交的修改。

第二种情况:改动已经被提交(commit)。

这种情况下,用svnmerge命令来进行回滚。

回滚的操作过程如下:

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

svnupdate

假设最新版本号是28。

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

svnlog [something]

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

如果想要更详细的了解情况,可以使用svndiff -r 28:25 [something]

3、回滚到版本号25:

svnmerge -r 28:25 something

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

svndiff [something]

发现正确无误,提交。

4、提交回滚:

svncommit -m "Revertrevision from r28 to r25,because of ..."

提交后版本变成了29。

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

1.svnupdate,svnlog,找到最新版本(latest revision)

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

3. 用svnmerge来回滚:svnmerge -r : something

SVN 查看历史信息 通过svn命令可以根据时间或修订号去除过去的版本,或者某一版本所做的具体的修改。以下四个命令可以用来查看svn的历史:

svnlog 用来展示svn的版本作者、日期、路径等等

svndiff 用来显示特定修改的行级详细信息

svncat 取得在特定版本的某文件显示在当前屏幕

svnlist 显示一个目录或某一版本存在的文件

(一)svnlog可以显示所有的信息,如果只希望查看特定的某两个版本之间的信息,可以使用:

svnlog -r r1:r2

如果只想查看某一个文件的版本修改信息,可以使用

svnlog A

如果希望得到目录的信息要加-v

如果希望显示限定N条记录的目录信息,使用

svnlog --limit N -v

(二)svn diff用来检查历史修改的详情

1、检查本地修改

2、比较工作拷贝与版本库

3、比较版本库与版本库

SVN:取消对代码的修改的更多相关文章

  1. 两个SVN仓库之间代码的转移

    背景: 1.公司的svn服务器架设在了公司内网环境中,没有公网ip,所以离开了公司环境就无法访问(更新.提交...)svn服务器了: 2.四个开发人员去客户现场开发新的需求,在现场找了一台服务器临时搭 ...

  2. SVN上传代码

    概述 SVN上传代码 使用SVN工具上传代码到新浪SAE 1.下载SVN工具http://tortoisesvn.net/downloads.html 2.创建一个文件夹,Checkout,输入SAE ...

  3. 实现textbox文本页面改变触发textchanged事件,代码里修改不触发

    今天弄控件遇到一个问题,就是TextChanged,如果在代码里或在页面修改修改text值,就会触发事情,但如果在textchanged里修改text,它会不会触发呢,不会,我调试跟踪,并没发现它会重 ...

  4. 从SVN导出指定版本号之间修改的文件(转)

    从SVN导出指定版本号之间修改的文件(转)   当一个网站项目进入运营维护阶段以后,不会再频繁地更新全部源文件到服务器,这个时间的修改大多是局部的,因此更新文件只需更新修改过的文件,其他没有修改过的文 ...

  5. SVN取消记住密码

    百度上面找的,SVN取消记录密码的方法: 找到这个文件夹首先需要在文件夹选项里面,显示所有的文件和文件夹,不能隐藏. SVN取消记住用户名的方法 打开C:\Documents and Settings ...

  6. Cocos2D在新版Swift中常量枚举值引用代码的修改

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们知道在SpriteBuilder中是无法直接给一个CCB文 ...

  7. Unity3D代码动态修改材质球的颜色

    代码动态修改材质球的颜色: gameObject.GetComponent<Renderer>().material.color=Color.red;//当材质球的Shader为标准时,可 ...

  8. 分享下使用 svn,测试服务器代码自动更新、线上服务器代码手动更新的配置经验

    分享下使用 svn,测试服务器代码自动更新.线上服务器代码手动更新的配置经验 利用SVN的POST-COMMIT钩子自动部署代码 Linux SVN 命令详解 Linux SVN 命令详解2 使用sv ...

  9. hudson用SVN插件下载代码,用ant插件打包, 用SSH插件部署

    hudson自动化部署步骤 1.SVN插件->下载代码 2.ant插件->war打包    (hudson服务器上可安装多个版本ant,每个项目可以选择一个ant版本.Build File ...

随机推荐

  1. Ubuntu的一些软件源

    参考别人的,自己记录一下,怕丢失 修改方法:vim /etc/apt/sources.list,然后添加下面对应的代码区 台湾的官方源 deb http://tw.archive.ubuntu.com ...

  2. Redis(1)- Redis数据库的安装和配置

    1.Redis安装 1.1.Linux环境安装Redis step-1:下载Redis 进入官网找到下载地址 https://redis.io/download wget https://github ...

  3. React简单教程-4-事件和hook

    前言 在上一章 React 简单教程-3-样式 中我们建立了一个子组件,并稍微美化了一下.在另一篇文章 React 简单教程-3.1-样式之使用 tailwindcss 章我们使用了 tailwind ...

  4. iOS全埋点解决方案-采集奔溃

    前言 ​ 采集应用程序奔溃信息,主要分为以下两种场景: ​ NSException 异常 ​ Unix 信号异常 一.NSException 异常 ​ NSException 异常是 Objectiv ...

  5. node.js 创建 wss服务

    var https=require('https'); var ws=require('ws'); var fs=require('fs'); var keypath=process.cwd()+'/ ...

  6. 3.C++逐行读取txt文件数据,利用getline -windows编程

      引言:今天学会了getline的用法,顺手编写一个逐行读取txt文件的程序.关于getline的用法可以看我之前的博客:2.C++标准库函数:getline函数 定界流输入截取函数 -zobol的 ...

  7. Apache ShardingSphere 5.1.2 发布|全新驱动 API + 云原生部署,打造高性能数据网关

    在 Apache ShardingSphere 5.1.1 发布后,ShardingSphere 合并了来自全球的团队或个人的累计 1028 个 PR,为大家带来 5.1.2 新版本.该版本在功能.性 ...

  8. WPF开发随笔收录-DataAnnotations实现数据校验(MVVM架构下)

    一.前言 在自己的项目中挺多地方需要涉及到数据验证的,初期的实现方式都是通过点击确定后再逐个验证数据是否符合要求,但这种方式会让后台代码变得很多很乱.于是就开始在网上需求好的解决方式,刚好看到了一个大 ...

  9. umask默认权限及特殊权限

    1. linux系统中,创建一个新的文件或者目录的时候,新的文件或目录都会有默认的访问权限,umask命令与文件和目录的默认访问权限有关. 用户创建一个文件,文件的默认权限为 -rw-rw-rw-(6 ...

  10. sql-sql优化

    SQL执行流程 a. 编写过程: select dinstinct .. from .. join .. on .. where .. group by .. having .. order by . ...