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仓库迁移
1
6.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
  

 

posted @ 2020-10-14 15:03  shanyu20  阅读(203)  评论(0编辑  收藏  举报