svn使用教程(Mac、Linux)

来源:互联网 发布:rpc动态端口 编辑:程序博客网 时间:2024/05/01 22:01

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的操作并不需要工具的。

0 0
原创粉丝点击