Tuesday, August 12, 2008

benefits by using svn

首先先讲一下subversion几个特性.
tortoisesvn安装之后, 有个help文档, 非常好, 不仅包含tortoisesvn的帮助, 而且有很多关于subversion服务器端帮助信息. 网络上有一个中文帮助chm文件, 网站为http://svndoc.iusesvn.com

Subversion 在版本控制方面做的非常好, 它用一个global revision number来标示repository的版本状态. 每次commit, 全局版本号码都增一. Subversion 一个非常好的特点是, 若一个文件在两个版本中没有任何修改, 其实它在Subversion中仅有个保存, 这里采用了类似于Unix的hard-link技术. 所以你不用担心频繁的commit会不会使repository存储快速增大.
HEAD revision指的是最新版本的revision, 但是需要注意的是, 如果你要针对HEAD revision进行某种操作时候(比如合并), 你的repository可能同时会被其他人进行commit, 这样你的合并结果可能不是你期望的那个. 所以最好的方式是, 在你合并时候, 指定版本号, 即使是合并最新版本, 也要先获取它的版本号.

Subversion为开发流程提供的新的模式
单单就subversion的合并功能, 其实对于开发模式来讲, 具有非常大的变革. 比如我们要增加一个新的feature, 这个feature的开发有一定的风险或者我们要将这个feature的开发交给另一个team. 通常我们可以将当前的trunk做一个branch, 专供new feature开发的. 由于在new feature的开发中, trunk的代码也在不断演进, 甚至是new feature依赖的基础也可能会变化的, 所以我们不能期待在new feature开发完毕之后, 再将branch和trunk合并, 这样branch的改动量会很大, 所以我们应该每个一周就将trunk的代码合并到branch中, 这样每次合并对于branch这边的冲击会小一些, 迭代几个周期, 当new feature开发完毕之后, 再将branch合并到trunk中.

No comments: