博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

svn在.net项目中的使用心得

Posted on 2008-05-04 09:45  南郭大侠  阅读(3170)  评论(1)    收藏  举报
1.建立svn库的时候可以选择服务器方式和文件系统方式,如果在自己用一般用文件系统方式就好了,可以避免别人下载代码。如果几个人一起用就开放服务器方式,需要安装一下subversion服务器。密码在conf/passwd里面。
2.使用svn要首先import代码,然后checkout一份workcopy。原来的代码就可以不用了
3.checkin和import的时候一定要看清楚,不要把bin,obj文件夹,.suo文件等checkin,因为这些文件是2进制文件,对我们来说做版本控制一般是没用的,而且每次编译都会改变,大部分情况下没必要做版本控制。不需要的文件add to igore list
4.一般建库的时候src文件夹下面有trunk, branches, tags三个文件夹,这个是我前几天刚知道的,怪不得从sourceforge上面下代码一般都是/trunk结尾的目录。trunk是主干代码,branch是分支代码,比如你主干代码莫个大功能还没做好,或者之前发布的某个版本有bug而客户需要修正,那就放在branches里面。tag里面一般就是tag过的版本,通常就是莫个发布版
5.checkin第一守则,必须代码要可编译。否则别人checkout以后就无法编译了。所以checkin之后一定要看一下自己的workcopy是否还是未提交的改动,这些改动是否影响主干代码的可编译性
6.尽量控制版本库的变化,就是说每次提交的粒度,我推荐是一个功能,也就是说每实现一个功能提交一次。这样子log比较好填
7.log一定要填。否则跟用压缩工具打包代码备份一样的效果。有了log才知道自己每个version是做了什么工作,那么revert到这个版本才有意义
8.不要躲避冲突。合作开发冲突是难免的。conflict出现的时候要面对它,解决它,这才是svn的真谛。tortoiseSVN的diff工具挺好的,解决冲突比较方便,我一般的方法是,用diff处理conflict,打开项目编译一遍,再验证一边没问题就可以提交了。
9.冲突出现的地方:解决方案文件,工程文件,公共模块部分,一般很少修改别人的代码文件

以上是我一段时间使用svn的一些心得吧,欢迎大家来喷~
文中故意使用了一些英文单词,为了让不熟悉svn或者只用英文版svn的人知道我用的那个功能
向北航行