最近我公司的开发部是在研实行减少系统管理工作的方法。之前我们会用公司内部的svn版本控制服务器,虽然软件都是免费的,自己管理的成本也不少:硬件成本,维护成本,电源成本,空调成本,因为故障浪费同事工作时间成本加起来也挺大。 另外一个问题是我们公司的网络不太适合自己host版本控制服务器。因为公司用的电信商用DSL上传限速才512k,在外网访问svn会超级慢。再说因电信为没有固定ip地址,在外网访问经常会出问题。 另外一个问题是每一个两月会出现设备或电源问题,后果有一段时间连不上svn。连不上版本控制服务器的情况下很难继续做开发工作。 我第一个想法是公司不要继续管理自己的版本控制服务器,最好是把它外包出去。专门做版本控制服务器的公司肯定会管理的比我们好,而且放在外网不会涉及到动态ip地址及上传限速的问题。 搜索了一下,发现有几家比较有名的版本控制服务公司。大部分是要不是用svn就用git。感觉github.com是做的最好的,尤其是因为它有中文版界面,但是github唯一的缺点是它git不支持svn。 从这个时候才开始研究git到底是怎么回事。git是林纳斯·托瓦兹创立的版本控制工具,为了更好地管理linux内核的源码。git和其它版本控制技工具最大不同点是它采用了分布式版本库的方式,不必有服务器端。这就是说提交等等操作时都是在本地的库进行,不必连到什么服务器,结果常用的版本控制操作都很快因为没有网络延迟。也可以离线用它。 因为我们经常和海外的团队合作,也经常发布项目在国外的服务器,我们经常面对比较大网络延迟,300到400毫秒对我们来说算挺正常的。有时会感觉到老在等svn checkout或svn update运行完。了解了git后发现git也会让我们网络慢的问题变的没那么大。 我个人也经常不在办公时在外面出差。换到一个类似git的分布式版本控制会让我在飞机上和其它没有网络的情况还能继续工作。 结果我决定了不止外包版本控制服务器也换到用git分布式版本控制工具。 已经了解svn的情况下,git学起来很容易。主要要注意的是提交之后要运行git push把你本地库的修改同步到github库,想下载同事的修改要运行git pull。 一开始只是想简单的减少内部系统管理的工作,结果都换掉了公司源码管理平台。 你公司是有哪些版本控制工具和产品?在评论说一下你的经验。
