SVN进阶学习

72 阅读2分钟

继续上篇svn常用命令,本篇主要分享开发中一些场景和遇到的问题

分支

其实大家都知道git中分支管理功能非常强大,其实svn也是可以做分支管理,只是没有git分支管理方便,切换分支也很慢,针对老的项目可能有的公司还在使用svn做简单的分支管理。

创建分支

方式一:在项目文件夹右键选择 TortoiseSVN -->Branch/tag,在To path

image.png

方式二:使用命令:

svn cp -m "描述内容" 主分支路径 新分支路径

切换分支

方式一:

image.png 然后在To path中输入要切换的分支路径

方式二:

svn sw 分支路径

删除分支

svn rm 分支路径

合并分支

  • 先查看分支日志

image.png

  • 选择要合并的版本 选择好要合并的分支,点击右键

image.png

  • 再选择要合并到哪个分支上去

  • 最后再提交合并后的分支到服务器

方式二: 合并主干上的代码到分支上

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.当服务器地址或者项目地址发生改变时(重定向),本地如何修改?

方法一: image.png

然后在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的更多细节和原理,可以在网上有很多资料查看。