继续上篇svn常用命令,本篇主要分享开发中一些场景和遇到的问题
分支
其实大家都知道git中分支管理功能非常强大,其实svn也是可以做分支管理,只是没有git分支管理方便,切换分支也很慢,针对老的项目可能有的公司还在使用svn做简单的分支管理。
创建分支
方式一:在项目文件夹右键选择 TortoiseSVN
-->Branch/tag
,在To path
方式二:使用命令:
svn cp -m "描述内容" 主分支路径 新分支路径
切换分支
方式一:
然后在To path中输入要切换的分支路径
方式二:
svn sw 分支路径
删除分支
svn rm 分支路径
合并分支
- 先查看分支日志
- 选择要合并的版本 选择好要合并的分支,点击右键
-
再选择要合并到哪个分支上去
-
最后再提交合并后的分支到服务器
方式二: 合并主干上的代码到分支上
cd branches/level1.0
svn merge http://****/master
分支代码合并到主干
svn merge --reintegrate 分支路径
代码冲突
在提交代码或者合并分支中难免会遇到代码冲突的问题,遇到代码冲突建议使用可视化工具解决
针对冲突文件:
橙色行是未冲突行的内容
红色行就是冲突行,并且下方窗口全是????? ,表示无法合并
-
use this text block :
选取选中行的内容 -
use this whole file :
选取选中行所在文件的全部内容 -
use text block from mine before theirs :
先用Mine的内容,后面接着用theirs的 -
use text block from theirs before mine :
先用theirs的内容,后面接着用mine的
处理完冲突后点击 Mark as Resolved 按钮保存修改,冲突解决
blame
查看每一行是谁修改的
svn blame filename.php
可能会遇到的场景和问题
1.当服务器地址或者项目地址发生改变时(重定向),本地如何修改?
方法一:
然后在To Url
中输入新的地址
方法二:
svn switch --relocate 原SVN 地址 新SVN 地址
2.svnE170004: File提交文件出现out of date
解决:这个是由于本地版本与svn上版本不同造成的,更新一下再提交就OK了
3.svn文件locked,提示 bradk write locks
解决:在对应的文件上右键选择clean up,选中bradk write locks,即可
介绍到这里基本满足开发中的大多数需求,如果还想深入去了解svn的更多细节和原理,可以在网上有很多资料查看。