jianghu52
2013-10-17 16:01:50 +08:00
说一下我个人的感受。
svn本身偏向于c/s的开发,或者说是偏模块儿化或者松耦合的程序。svn可以单模块儿的上传。也可以单模块儿的更新。因为是单模块的更新,因此开发者完全不需要考虑其他开发者的变更,自己的开发也是完全在基础版本上更新来的。
对于svn来说,以前的瀑布开发很合适。一个开发组里面只要有一两个比较厉害的人,带着其他水平不怎么样的人做东西,其他的人都不提交代码,全部交给PL来合并代码,并维护svn。这样的话代码质量容易维护。在我看来,svn对于团队来说,update是所有的人事情,但是commit只是组长的事情。
git更适合b/s开发。现在的开发强调小步快跑。也就是说,要求不论什么时候,都要可以有一个快速的可以运行的版本。这样一来,就要时刻强调代码的完整性,最好每一版都是可以运行的。在svn上不是不可以做到,但是相比git比较麻烦。git是应该所有成员都update,都commit的。每次不管其他谁要commit代码,必须先保证本地的版本同服务器上的版本相同。这样一来,从逻辑上就保证了每一次commit代码之后,都是服务器都是一个完整的版本。
git更要求整个team的组员都要有一定的水平,因为你每一次commite之前,都要去check一遍版本,如果有了别人的变更,你必须要先把变更合并了。这个时候,就需要考虑别人的变更是否会对你的变更有影响,这需要你对业务的熟悉,同时还要对其他人的编码熟悉。相当于原来组长的活,变相的分解成了组员的活。