svn命令详解

来源:互联网 发布:淘宝怎么加入中国质造 编辑:程序博客网 时间:2024/06/15 01:54
1. svn co svn://192.168.2.66/conplat/branch/V100R003/V1R3trunk
   目标目录名为V1R3trunk
************************************************************************************
2. svn update(将当前目录及其子目录更新到最新版本)
   svn update -r200 (将当前目录及其子目录更新或还原到版本200)
   svn update -r 200 scripts/startup_1_init (将startup_1_init文件更新或还原到版本200)
************************************************************************************
3.    #mkdir test
    #svn add test    (将目录test添加给版本控制系统)
    A    test      (命令执行后test目录状态为“A”,表示添加)
    #touch test.txt
    #svn add test.txt  (将文件test.txt添加给版本控制系统)
    A    test.txt    (命令执行后test.txt文件状态为“A”,表示添加)
************************************************************************************
4.  #svn del scripts/startup_1_init
    D   scripts/startup_1_init  (命令执行后startup_1_init状态为“D”,表示删除)
    注:不要使用非svn命令(rm)删除工作拷贝中的文件或者目录,导致代码不完整。
************************************************************************************
5.    svn st|grep ^M   (获取“M”状态文件列表)
    svn st|grep -v ^?(过滤掉“?”状态的文件列表)
    常见状态如下:
     “A”        预定加入到版本库
     “C”        发生冲突
     “D”        被删除了
     “M”        内容被修改
     “?”        条目未纳入版本控制
     “!”        该项目已遗失(被非svn命令删除)或不完整
     “~”        版本控制下的项目与其它类型的项目重名
其中,“?”“!”“~”为非正常状态,svn不会将处于该状态的文件提交至项目仓库。
************************************************************************************
6.    svn revert scripts/startup_1_init(发现误改了某个文件,可执行此命令将改动撤销掉。)
    svn revert -R scripts (撤销对scripts目录中文件所做的所有改动。)
************************************************************************************
7.    svn diff                  (默认显示当前目录及其子目录下的所有修改差异)
    svn diff scripts/startup_1_init(查看startup_1_init文件的修改差异)
    svn diff >bugxxx.diff       (修改内容多时导出到diff文件中,便于更直观的检查。)
    svn diff -r m:n [PATH]     (对版本m和版本n比较差异。)
    获得代码合入后的diff 文件(即某次的提交diff):
    svn diff -r 提交后版本号-1:提交后版本号 > bugxxx.diff
    或使用等价命令 svn diff -c 提交后版本号 > bugxxx.diff
************************************************************************************
8.    svn commit -m "Bug 42784 - 【内部测试】【D设备】【系统管理】省口D(原简版) 空插2+24后,其下行口引流到8+24命中转错组 " --username wangniewen
    注:在代码根目录下将对应问题单的所有修改文件一次性提交到版本库,不要到各个目录下分别提交以避免漏合;
    问题一次性修改合入,避免一个问题单合入多次导致中间版本出现编译或功能问题。
************************************************************************************
9.    svn log scripts/startup_1_init(显示此文件的所有修改记录,及其版本号的变化。)
************************************************************************************
10.    svn info scripts/startup_1_init,查看startup_1_init文件的详细信息
************************************************************************************
11.    #svn mkdir newdir
    A   newdir
    添加目录newdir,相当于mkdir newdir和svn add newdir的命令集合
************************************************************************************
12.    一个问题要合入多个分支,若分支代码差异不大,可以在其中一个分支(a)上修改提交后,
    使用svn merge命令将改动合并到另外的分支(b)上。N指的的是你在a分支上此次改动提交后的svn版本号;
        源代码路径和目的代码路径均为本地代码的路径(相对路径、绝对路径皆可以)
eg:将a中的改动merge到b中,如果是在b代码根目录下执行,命令如下:
      svn merge --ignore-ancestry -rN-1:N a代码相对路径 . (“.”代表当前目录)

    回退问题单。
    将主线分支中合入的bug11373回退掉。(bug11373合入主线后的svn版本号为16534。)
    在本地主线代码工作拷贝根目录下执行svn merge回退此次合入的修改,并将回退操作由工作拷贝提交至项目仓库。
    svn merge -r16534:16533 .  ( 或svn merge -c -16534 . )
    svn ci -m “rollback bug11373”
    
************************************************************************************
在B30主线代码根目录下执行以下命令,即可切换到新主线开发分支:代码目录不会变,无需重新建SI工程。

[root@localhost B30trunk]# svn switch svn://192.168.2.66/conplat/branch/V100R003/V1R3trunk

    注意如果有软链接指向你的代码目录,则不要通过软链接进入代码目录编译,否则会编译失败。
    如有/media/disk/V1R3trunk,且存在软链接/studio/new -> /media/disk,则cd到/studio/new/V1R3trunk下编译时
    ,会出现莫名其妙的编译错误。


************************************************************************************
13.    命令格式:svn help [子命令]
    描述本程序或其子命令的用法。