svn操作
一、网址参考
1、命令行svn commit时,注释怎么实现换行效果svn ci -m $'first line\nsecond line' 重点是单引号前的$
2、SVN更新后,前边字母的提示含义
U:表示从服务器收到文件更新了 G:表示本地文件以及服务器文件都已更新,而且成功的合并了 A:表示有文件或者目录添加到工作目录 R:表示文件或者目录被替换了. C:表示文件的本地修改和服务器修改发生冲突
3、svn代码回滚命令
4、svn 命令行创建和删除 分支和tags
5、【转】 SVN 状态标识的详解
6、简要理解svn merge的几种用法
7、svn 回退/更新/取消至某个版本命令详解
8、理解SVN关键词BASE,HEAD,COMMITTED,PREV
9、常用的SVN命令小结
10、svn:如何从特定版本的trun创建分支
11.使用SVN命令行解决树冲突(tree conflict)
12.svn add后的数据如何取消-svn revert??
13.SVN 服务器仓库搭建
14.windows下svn仓库迁移(图形化操作)
15.SVN仓库迁移
16.svn 回退/更新/取消至某个版本命令详解
二、实际操作
1、生成补丁和打补丁,有两种方法:
1)用命令svn diff -r N:M
生成版本库中最新版本与r14997版本的区别,旧版本在冒号前,新版本在冒号后;
生成patch: svn diff -r 14977:HEAD . > 11.patch
把补丁文件拷贝到另一个work-copy的同样目录下,然后打入patch文件: patch -p0 <11.patch
2)用命令svn diff -c
svn diff -c M 相当于svn diff -r M-1:M
生成patch文件:svn diff -c 15447 > 11.patch ; 即把从15477的上一个版本到15477版本的升级文件生成补丁文件11.patch
把补丁文件拷贝到另一个work-copy的同样目录下,然后打入patch文件: patch -p0 <11.patch
3)svn help diff
4) man patch
5)HEAD和BASH的区别
HEAD: 版本库中的最新版本
BASH: 工作副本的基线版本,BASH的版本号可能比HEAD低;如果在工作副本目录下svn up之后,则BASH版本和HEAD版本相等
2、版本回退
用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。
6)如果只是回退到上一个版本,也可以用svn merge -c -20,即回退到19版本,相当于svn merge -r 20:19
3、切换到之前的某个版本
如需要切换到18108版本,则可以输入以下命令:
svn up -r 18108
4、把主干上的变化应用到分支上
用svn merge
1) 先切换到分支目录下
2)输入命令: svn merge -r15451:15462 http://192.168.1.110/svn/linux/xxx/xxx/trunk . (即把主干上15462与15451版本之间的所有差别应用到当前分支上, 不包括15451与15450之间的差别)
或者例如:
svn merge -c15483,15484,15488,15492,15493,15523 http://192.168.1.110/svn/linux/xxx/xxx/trunk .
3)svn st 和svn diff,检查一下是否正确
4)svn ci -m $'1. xxxx',提交到版本库
5、创建分支
用svn copy
例子:
1) svn cp http://192.168.1.110/svn/linux/APP/xxxxx/trunk http://192.168.1.110/svn/linux/APP/xxxxx/branches/xxx -m 'Create branch for xxx' --parents
2)
svn copy http://svn.example.com/repos/calc/trunk@rev-no
http://svn.example.com/repos/calc/branches/my-calc-branch
-m "Creating a private branch of /calc/trunk." --parents