RaulZuo

导航

SVN使用总结

常用命令


  • 建立分支 --- svn copy/cp

svn cp http://example.com/repos/myproject/trunk http://example.com/repos/myproject/branches/branchname -m 'new branch description'
```

  • 迁出分支 --- svn checkout/co

svn co http://example.com/repos/myproject/branches/branchname
注:在Branch和Trunk两边的提交都会引起主版本号的增加,这是由于svn copy只支持同一个repository```内的文件copy,并不支持跨repository的copy,因此新建的Branch和Trunk都属于同一个repository。

  • 提交内容 --- svn commit/ci

svn ci -m "commition message" filepath
```

  • 合并分支 --- svn merge
    • Branch merge to Trunk (在Trunk目录下)

svn merge http://example.com/repos/myproject/branch/branchname
// 将Branch的从版本150到当前版本的所有改动都合并到Trunk中
svn merge http://example.com/repos/myproject/branch/branchname -r150:HEAD
```
* Trunk merge to Branch (在Branch目录下),类似Branch1 merge to Branch2

	```

svn merge http://example.com/repos/myproject/trunk
```

  • 查看合并情况 --- svn mergeinfo (在Trunk目录下)

// 查看当前Branch中已经有哪些改动已经被合并到Trunk中
svn mergeinfo http://example.com/repos/myproject/branches/branchname
// 查看当前Branch中那些还未合并
svn mergeinfo http://example.com/repos/myproject/branches/branchname --show-revs eligible
```

解决冲突


  • 处理选择
    • (p) postpone --- 推迟处理
    • (df) diff-full --- 列出所有的修改
    • (e) edit --- 直接编辑冲突的文件
    • (mc) mine-conflict --- 只用自己的修改,去掉别人的修改
    • (tc) theirs-conflict --- 去掉自己的修改,使用别人的修改
    • (s) show all options --- 显示其他所有的命令
  • 提交代码遇到的冲突
    1. xxx is out of date

      • 本地某文件或目录结构冲突
      • 解决方案
        1. svn update;
        2. 若svn合并成功,则svn commit提交本地的修改。
        3. 若产生冲突(One or more files are in a conflicted state.)
    2. One or more files are in a conflicted state

      • 本地文件冲突
      • 解决方案
        1. 现在postpone

        2. 多出3个文件,xxx.mine、xxx.r777、xxx.r778

        3. xxx文件中出现如下内容,其中小于号和等号之间的内容是本地的修改,而等号与大于号之间的内容是远程的修改(即有冲突的部分)

          <<<<<<< .mine
          ...............
          =======
          ...............
          >>>>>>> .r778
          
        4. 根据所需的修改,对xxx文件进行修改

        5. 完成修改后,输入svn resolved xxx命令,本地删除原先多出的3个文件

      注:xxx是尝试合并的文件;xxx.r777是本地修改文件的基础版本,777是版本号;xxx.mine是本地修改后的文件,即,在xxx.r777文件基础更改的文件;xxx.r778是远程最新版本的文件,778是版本号

    3. svn合并分支时遇到的冲突

      • 两个操作:增加本地没有的文件、合并本地已有但不同的文件
      • 若产生冲突,则采用One or more files are in a conflicted state相同的办法处理冲突

posted on 2016-09-09 18:01  RaulZuo  阅读(187)  评论(0编辑  收藏  举报