学习是一种信仰。
分类: 项目管理
2013-05-28 16:52:16
以下内容是从公司团队协作开发角度阐述本人观点,如有雷同,纯属巧合。
1.svn已成熟
目前svn已经发展成熟,而git正在茁壮成长。环境搭建方面,svn可以使用Subversion Edge来快速创建,按照文档,十分钟左右我们可以搭建完毕,内置的viewvc可以让我们在图形界面中创建仓库,管理用户,管理权限等。而git了?至少目前我没有发现此类的工具。
【我用过的有tig, gitk等客户端。git命令本身就可以完成管理工作,为什么还要其他工具?】
客户端方面,svn的客户端已经堪称完美,比如TortoiseSVN或者与eclipse集成的插件,让我们操作svn都变得简单
【git操作很简单;svn复杂到要集成客户端才变的简单?】
集成方面,svn历史悠久,基本所有的开源软件都可以与svn进行集成,并且文档比较齐全。
【cvs历史更悠久,是不是比svn还好?】
2.svn简单易学
不得不承认,svn简单易学,也比git容易理解。他的workflow非常的clear,checkout->modify->commit,流程符合我们的思维,也容易理解。
【微软的VSS理解更简单,原理是windows下的网络文件共享,符合所有使用windows的人思维,请问有谁在用么?】
3.git真的快么?
提起git的优点,很多人第一反应时说git快,我想问的是svn慢么?首先我们的工作环境基本都是局域网,局域网中去checkout、commit能慢?起码我们公司在5秒内可以完成。其次,git的快是指提交的时候快,而不是push的时候,在我们的团队开发中,很多时候都需要你push,你光提交对于你的战友来说毫无意义。最后,git适合离线工作,我想说,我这种苦逼很少有离线工作的时间。
【局域网环境下,什么慢?我在局域网下直接复制几百兆的文件不压缩,也不觉得慢】
4.svn真的不安全么?
很多人都说,git不怕版本库丢失,因为每个人手里都有一个版本库。再反问下,svn怕?第一,svn服务器挂掉或者版本库被删除几率很小,如果一个公司连这个都不重视,他还重视什么了?第二,你们难道不对svn的版本库进行备份么?如果连这些基本的都不做,那我只能说愿上帝保佑你。
【照这么说,要什么服务器,代码放在自己机器上也很安全,硬盘挂掉的几率很小,我也绝对不会误删(程序元连这个都不重视我还重视什么了?】
5.创建分支,打tag不方便?
确实,git创建分支很简单,只需要创建一个2KB文件,并且切换分支、合并分支都很简单,而svn相对确很复杂。针对这方面,考虑下,我们创建分支的机会多么?按照正常的工作流程,我们是在发布新版本的时候才会创建分支、打tag,你们公司不会每天都发布新版本吧?并且svn创建分支也不是那么糟糕吧?
【svn能建本地分支么?不是每个分支都要传到服务器上的,你难道从来不写试验代码么?你的代码都是一次在脑子里勾画好的么?】
6.svn迁移到git不容易
首先,你得进行知识培训,让你的团队了解git、学会使用git。其次,你得配置好你的git服务器,包括用户管理、权限管理、数据安全等。再者,你得调整与svn相关的其他软件,比如我们常用到redmine、jenkins。
【30分钟的学习即可掌握git的常用基本用法,比你熟悉的svn简单多了】
【况且,难道因为害怕培训就不进取了么?为什么那么多人从cvs迁移到svn了呢?可能cvs流行的时候,你还没入行呢吧?】
最后,我想说,git真的很牛逼,我也在使用,在某些特定的场合或者在您的团队,git可能就能体现出他的价值。
【最后,我想说,git既然这么nb, 不用难免很2b】