您的位置:首页 > 运维架构 > Linux

svn使用教程(Mac、Linux)

2016-12-30 15:35 190 查看

1. 基础知识

1) 版本库布局

版本库一般的布局结构为trunk(主干)、branches(分支)、tags(标签)。

i. trunk主干

trunk就是开发的主线,一般项目都是导入到主线来开发的。

ii. branches分支

branches一般是trunk某个版本的拷贝,如果你想在某一段时间单独对某个功能进行开发,而不像和其它功能混在一起,这时候branches是一个很好用的方式。你不会想在trunk里一直开发这个功能,不提交,直到开发完成吧。一般也会合并的trunk中的。

iii. tags标签

tags是啥?标签,顾名思义,就是某个版本的记录啦,就好像看一本厚厚的,看到哪一页了,做个记号,方便以后查阅。

迭代开发时,在某个版本发布应用,为了做个记录,这时候打个tag很实用。发布后,线上出现了一个bug,可以根据这个tag进行修复再发版本。

2. 使用

理解了主干、分支、标签的作用,下面说下svn的使用。我在项目中常用的功能一般是checkout、commit、update、分支管理、标签管理、版本回退。

checkout

代码检出比较简单,执行以下命令,$project_name表示项目名称:

svn co svn://.../path $project_name


有时想检出某个历史版本,$version标识版本号:

svn co svn://.../path@$version $project_name


commit

提交代码都会用,不多说:

svn ci -m "更新说明"


有时只想提交某个文件:

svn ci path_to_file -m "更新说明"


update

工作中尽量多的update,执行命令

svn update


分支

增加分支

增加一个分支,实际上就是把trunk复制到branches目录下,起一个特定的名字,表示该分支的作用;

svn copy svn://../trunk/project svn://../branches/project_buy -m "添加购买功能分支"


之后就可以在该分支上单独开发购买功能了,不会影响trunk的正常开发喽。

合并分支

购买分支上的功能开发完毕了,要合并到trunk中;

合并到trunk需要在trunk的分支下操作;

svn merge -r r1:r2 svn://../branches/project_buy ./


r1:r2表示从版本记录r1和r2之间的变化合并到当前工作目录中。

然后提交

svn ci -m "合并购买功能到主干"


删除分支

有时不需要某些分支了,删掉

svn delete svn://../branches/project_buy -m "删除购买功能到主干"


标签

标签创建

svn copy svn://../trunk/project svn://../tags/project_tag1 -m "创建标签1"


标签删除

svn rm svn://../tags/project_tag1 -m "删除标签1"


版本回退

版本回退这个功能很实用,开发过程中难免思路问题,回退代码。

- 没有提交的代码回退

svn revert svn://../path_to_file


- 已提交代码回退

svn merge -r r2:r1 svn://../path_to_file merge_file


好面熟啊,这个怎么跟分支合并差不多尼。本质上是一样的啦。r2:r1从高版本到低版本可不就是回退了嘛。从低版本到高版本增加记录,就是添加喽。

其它一些基础命令

记录查看log

查看版本历史记录

svn log | more


按n进行下翻,按q退出

查看版本历史记录,并看修改了哪些文件

svn log -v | more


查看文件变化diff

本地文件和版本库的变化

svn diff path_to_file | more


版本库版本的变化

svn diff -c r svn://../path_to_file | more


3. 结束语

掌握常用的这几个svn命令足以对付大部分日常工作了,理解之后,日常svn的操作并不需要工具的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  svn mac linux 标签