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 "删除购买功能到主干"
- 合并到trunk需要在trunk的分支下操作;
标签
- 标签创建
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)
- linux下,svn使用教程
- Linux下SVN客户端使用教程(全)
- Linux下SVN客户端使用教程(全)
- Mac下搭建svn服务器教程(终端与 Xcode的使用)
- Mac下搭建svn服务器教程(终端与 Xcode的使用)
- Mac下搭建svn服务器教程(终端与 Xcode的使用)
- mac下的SVN版本控制软件Versions使用教程
- Mac下的SVN客户端工具Cornerstone使用教程
- Mac下的SVN客户端工具Cornerstone使用教程
- SVN使用教程(详细)
- mac svn 命令(同样适用linux)
- 【工具使用】linux和mac下命令行使用svn
- CornerStone(SVN for Mac)使用介绍
- mac下使用svn
- mac上使用svn
- mac svn 使用注意事项
- MAC 使用SVN客户端
- 关于ShareSdk分享新浪微博停止工作问题
- mkfs.ext4 大于2T 的目录
- iOS 怎么删除项目中的多余分支
- 数据结构实训——图书管理系统
- IOS GCD使用求助
- svn使用教程(Mac、Linux)
- select、poll、epoll之间的区别总结[整理]
- windows10 使用sublime text3 编程
- python笔记
- iOS-直播中粒子效果
- Android的so注入( inject)和函数Hook(基于got表) - 支持arm和x86
- MainActivity中为什么不能在自己创建的线程中调用控件的方法?
- java 开源微信电商项目
- 请大神帮我看看这是什么问题