svn 回退/更新/取消至某个版本命令详解【转】

转自:http://www.cnblogs.com/mfryf/p/4654110.html

1. 取消Add/Delete

取消文件

svn revert 文件名

取消目录

svn revert --depth=infinity 目录名

2. 回退版本

方法1: 用svn merge

1) 先 svn up,保证更新到最新的版本,如20;

2) 然后用 svn log ,查看历史修改,找出要恢复的版本,如10 。如果想要更详细的了解情况,可以使用svn diff -r 10:20 [文件或目录];

3) 回滚到版本号10:svn merge -r 20:10 [文件或目录],注意版本号之间的顺序,这个叫反向合并;

4) 查看当前工作版本中的文件,如test.cpp和版本号10中文件的差别:svn diff -r 10 test.cpp, 有差别则手动改之;

5) 若无差别,则提交:svn ci -m“back to r 10,xxxxx” [文件或目录]。这时svn库中会生成新的版本,如21。

方法2: 用svn up

前2步如方法1,然后直接 svn up -r 10。当前的工作版本就是版本10了。但是注意,这时svn库中并不会生成新的版本,下次svn up之后,还是会回到当前的版本。

========================

改动已经被提交(commit)。

用svn merge命令来进行回滚。

回滚的操作过程如下:

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

svn update

假设最新版本号是28。

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

svn log

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

如果想要更详细的了解情况,可以使用svn diff -r 28:25 ""

3、回滚到版本号25:

svn merge -r 28:25 ""

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

svn diff ""

发现正确无误,提交。

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

更新至某个版本

svn update -r 版本号

svn help update

update (up): 将版本库的修改合并到工作副本中。

用法: update [PATH...]

如果没有指定版本,则将工作副本更新到 HEAD 版本。否则同步到 -r 选项所

指定的版本。

每更新一项就输出一行信息,使用首字符来报告执行的动作。这些字符的含义是:

A 已添加

D 已删除

U 已更新

C 合并冲突

G 合并成功

E 已存在

R 已替换

第一列字符报告项目本身。

第二列表示报告项目属性。

第三列中的字符“B”表示此文件上的锁被终止或窃取。

第四列中的字符“C”表示树冲突,同时“C”出现在第一列或第二列,分别表示

内容冲突或属性冲突。

如果使用了 “--force” 选项,在工作副本中未版本控制的障碍路径,不会自动

导致签出失败。 如果障碍路径与版本库中的对应路径类型相同(文件或目录),它

将成为受版本控制的路径,但是内容不改变。它意味着障碍路径的子孙,也可能

是障碍路径,同样会受版本控制。对于障碍路径中的文件,如果与版本库内的

不同,将视为工作副本发生本地修改。版本库中的所有属性都应用于障碍路径。

用第一列字符 “E” 来报告障碍路径。

如果工作副本中并没有指定的更新目标,但是有其父目录,那么就在指定路径上

将目标检出到其父目录中。如果使用了选项 --parents,就会创建目标的所有不

存在的父目录 (使用选项 --depth=empty)。

使用“--set-depth”选项设置此操作目标的工作副本之新深度。

有效选项:

-r [--revision] ARG : ARG (一些命令也接受ARG1:ARG2范围)

版本参数可以是如下之一:

NUMBER 版本号

‘{‘ DATE ‘}‘ 在指定时间以后的版本

‘HEAD‘ 版本库中的最新版本

‘BASE‘ 工作副本的基线版本

‘COMMITTED‘ 最后提交或基线之前

‘PREV‘ COMMITTED的前一版本

-N [--non-recursive] : 过时;尝试 --depth=files 或 --depth=immediates

--depth ARG : 限制操作深度是 ARG (‘empty‘, ‘files‘,

‘immediates‘, 或 ‘infinity‘)

--set-depth ARG : 设置工作副本的新深度为 ARG(‘exclude‘,

‘empty‘, ‘files‘, ‘immediates‘, 或 ‘infinity‘)

-q [--quiet] : 不打印信息,或只打印概要信息

--diff3-cmd ARG : 使用 ARG 作为合并命令

--force : 强制操作运行

--ignore-externals : 忽略外部项目

--changelist [--cl] ARG : 只能对修改列表 ARG 的成员操作

--editor-cmd ARG : 使用 ARG 作为外部编辑器

--accept ARG : 指定自动解决冲突动作

(‘postpone‘, ‘working‘, ‘base‘, ‘mine-conflict‘,

‘theirs-conflict‘, ‘mine-full‘, ‘theirs-full‘,

‘edit‘, ‘launch‘)

(shorthand: ‘p‘, ‘mc‘, ‘tc‘, ‘mf‘, ‘tf‘, ‘e‘, ‘l‘)

--parents : 创建中间目录

全局选项:

--username ARG : 指定用户名称 ARG

--password ARG : 指定密码 ARG

--no-auth-cache : 不要缓存用户认证令牌

--non-interactive : 不要交互提示

--trust-server-cert : 不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项 “--non-interactive”)

--config-dir ARG : 从目录 ARG 读取用户配置文件

--config-option ARG : 以下属格式设置用户配置选项:

FILE:SECTION:OPTION=[VALUE]

例如:

servers:global:http-library=serf

时间: 2024-07-28 18:56:09

svn 回退/更新/取消至某个版本命令详解【转】的相关文章

[转]svn 回退/更新/取消至某个版本命令详解

1. 取消Add/Delete 取消文件 svn revert 文件名 取消目录 svn revert --depth=infinity 目录名 2. 回退版本 方法1: 用svn merge 1) 先 svn up,保证更新到最新的版本,如20: 2) 然后用 svn log ,查看历史修改,找出要恢复的版本,如10 .如果想要更详细的了解情况,可以使用svn diff -r 10:20 [文件或目录]; 3) 回滚到版本号10:svn merge -r 20:10 [文件或目录],注意版本号

查看当前Linux系统的发行版本命令详解

很简单的一条命令哦,不过就是不太好记忆啦! lsb_release -a

svn常用命令详解(很全,很实用)

ubuntu下安装subversion客户端: sudo apt-getinstall subversion subversion-tools 1.检出 svn  co  http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码 svn  co  svn://路径(目录或文件的全路径) [本地目录全路径]  --username 用户名 --password 密码 svn  checkout  http://路径(目录或文件的全路径)

Linux SVN 命令详解(zz)

Linux下常用SVN命令 2012-04-02 11:46:00 标签:服务器 目录 Linux checkout linux系统 1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain  --username qinxiaohui 简写:svn co 2.往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.

Git命令详解(一)-个人使用

原文  http://blog.csdn.net/magicharvey/article/details/12431867 本文暂时不会涉及到团队如何使用Git的内容,而是从个人的角度探讨如何用好Git. 约定 绿色的5位字符表示提交的ID,分别指向父节点.分支用橘色显示,分别指向特定的提交.当前分支由附在其上的标识. 这张图片里显示最后5次提交,是最新提交.分支指向此次提交,另一个分支指向祖父提交节点. git cat-file git cat-file -t,查看Git对象的类型,主要的gi

Unix Linux vi vim 使用手册|vi vim 常用命令 详解

Unix Linux vi vim 使用手册 Vi 简介 Vi 是 Unix 世界里极为普遍的全萤幕文书编辑器,几乎可以说任何一台 Unix 机器都 会提供这套软体.Linux 当然也有,它的 vi 其实是 elvis(版权问题),不过它们都 差不多.熟悉 DOS 下的文书处理後,也许会感到 vi 并不好用:Unix 上也已经发展出 许多更新.更好用的文书编辑器,但是并不一定每一台 Unix 机器上都会安装这些额外 的软体.所以,学习 vi 的基本操作还是有好处,让你在各个不同的机器上得心应手.

JDK的命令详解操作

JDK的命令详解1 rmic 功能说明: rmic 为远程对象生成 stub 和 skeleton. 语法: rmic [ options ] package-qualified-class-name(s) 补充说明: rmic 编译器根据编译后的 Java 类(含有远程对象实现)名,为远程对象生成 stub 和 skeleton(远程对象是指实现 java.rmi.Remote 接口的对象).在 rmic 命令中所给的类必须是经 javac 命令成功编译且是完全包限定的类. 命令选项  -cl

DOS命令详解

DOS命令详解 命令 \? 可以进入命令帮助 1.md命令创建目录. MKDIR [drive:]pathMD [drive:]path 如果命令扩展被启用,MKDIR 会如下改变: 如果需要,MKDIR 会在路径中创建中级目录.例如: 假设 \a 不存在,那么: mkdir \a\b\c\d 与: mkdir \a chdir \a mkdir b chdir b mkdir c chdir c mkdir d 相同.如果扩展被停用,则需要键入 mkdir \a\b\c\d. 例子:md \a

oracle中imp命令详解 .

oracle中imp命令详解 Oracle的导入实用程序(Import utility)允许从数据库提取数据,并且将数据写入操作系统文件.imp使用的基本格式:imp[username[/password[@service]]],以下例举imp常用用法. 1. 获取帮助 imp help=y 2. 导入一个完整数据库 imp system/manager file=bible_db log=dible_db full=y ignore=y 3. 导入一个或一组指定用户所属的全部表.索引和其他对象