写点什么

文章:为什么我们要放弃 Subversion

2009 年 3 月 18 日

Subversion 曾经是我们亲密无间的战友,但自 从一年前部分团队成员去了美国,我们和 Subversion 的关系就开始出现了裂痕,首先是将 Subversion 服务器架设在美国后,中国开发人员频繁 进行的一些操作变得非常缓慢,本来通过追溯代码历史便可找出原因的问题,却因为网速缓慢,导致开发者将大量的时间耗费在等待服务器响应,而不是分析问题 上。其次,由于缺乏 IT 基础设施方面的投资以及完善的备份策略,数次因为网络原因或者服务器宕机,导致团队无法从中国访问版本管理服务器,正常的提交、更 新操作都无法进行,最严重的是版本管理服务器曾经在发布之前出现故障,导致服务器上的数据不得不回滚到九天以前,给发布带来了很大的风险。

从现象上看,版本管理服务器不在本地是遭遇速度瓶颈的主要原因,本质却是由于版本管理工具不能很好的根据团队的规模和结构伸缩。对我们而言,比较理 想的版本管理解决方案是在中美两地架设服务器,加快各个操作的执行速度,服务器之间自动同步来平衡两地对于速度和代码集成的要求。然而采用 Subversion 作为版本管理工具,决定了服务器仅能架设在一地。 SVK 可以解决部分问题,但它的缺陷太多,操作起来非常不便。我们所面临的备份问题则是由于在 Subversion 的设计中,所有的元数据仅仅保存在服务器上,一 旦服务器出现意外,元数据所包含的宝贵信息便无从恢复。之前的教训让我们认识到如果采用 Subversion 作为版本管理工具,就不能仅仅乐观的假设服务 器不会出错,必须有详尽可行的备份计划,通过不断备份来规避风险。

Subversion 的这些天生缺陷让我们把目光投向了 DVCS (分布式版本管理工具),在这个家族中,比较成熟的产品有 Git Mercurial Bzr , 相比之下,由于 Mercurial 对 Linux,Mac 和 Windows 平台有良好的支持,支持通过 Web 方式访问代码库,并存在成熟的 IntelliJ、Eclipse 插件,最终成为了胜出者,时至今日,它已经在我们团队服役超过 1 年了,从 0.9.4 到 1.1.2,每一次版本的更新,都 让我们愈加喜欢这个设计精巧产品。那么较之 Subversion,Mercurial 究竟胜在哪里?

详细内容,请阅读全文为什么我们要放弃 Subversion

2009 年 3 月 18 日 00:302003

评论

发布
暂无评论
发现更多内容

spring事务的这10种坑,你稍不注意可能就会踩中

简爱W

oeasy 教您玩转linux010101查看内核uname

o

JDK8 日期 API 使用

HeGuang

JDK1.8

书摘之《堂吉诃德》—— 谁不曾想过仗剑走天涯?

Sicolas Flamel

读书笔记

深入浅出Vert.x架构

dinstone

netty案例,netty4.1高级应用篇三,手写RPC框架第三章《RPC中间件》

小傅哥

Netty 小傅哥

netty案例,netty4.1源码分析篇二《ServerBootstrap配置与绑定启动》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1源码分析篇六《Netty异步架构监听类Promise源码分析》

小傅哥

Netty 小傅哥

区块链的共识机制有哪些好处优势?

CECBC区块链专委会

区块链 分布式 金融

大龄程序员的自我介绍 v 0.1

escray

学习 面试 自我介绍 面试现场

牛逼操作,ThreadLocal还能当缓存用

简爱W

Java

netty案例,netty4.1中级拓展篇十三《Netty基于SSL实现信息传输过程中双向加密验证》

小傅哥

Netty 小傅哥

Week10--课后作业

Geek_165f3d

Spring的Controller是单例还是多例?怎么保证并发的安全

简爱W

netty案例,netty4.1中级拓展篇十二《Netty流量整形数据流速率控制分析与实战》

小傅哥

Netty 小傅哥

netty案例,netty4.1高级应用篇二,手写RPC框架第二章《netty通信》

小傅哥

Netty 小傅哥

一个实用的开源项目,可以快速将 Elasticsearch 数据导出到 csv

AlwaysBeta

Python 数据库 elasticsearch Kibana Lucene Elastic Search

我,一个当代普通大学生的自述

有梦的咸鱼

个人成长 大学生日常 个人感悟 讨论写作

数字化背景下的经济社会发展的新特征 新趋势

CECBC区块链专委会

区块链 人工智能 大数据

8锁问题

HeGuang

synchronized

阿里内部流传的Mybatis笔记终于流传出来了,赶紧收藏

简爱W

netty案例,netty4.1源码分析篇五《一行简单的writeAndFlush都做了哪些事》

小傅哥

Java Netty 小傅哥

大数据技术思想入门(二):分布式存储集群特点

抖码算法

Java 大数据 hadoop 分布式

Week10---课后总结

Geek_165f3d

这么理解业务架构就对了!

周金根

BIZBOK 业务架构

世界正在重塑 加密货币将扮演什么角色

CECBC区块链专委会

数字货币 加密货币

做职场里的“超级英雄”,需要怎样的盔甲与工具?

脑极体

netty案例,netty4.1高级应用篇一,手写RPC框架第一章《自定义配置xml》

小傅哥

Java Netty

netty案例,netty4.1源码分析篇一《NioEventLoopGroup源码分析》

小傅哥

Netty 小傅哥

netty案例,netty4.1源码分析篇三《Netty服务端初始化过程以及反射工厂的作用》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1源码分析篇四《ByteBuf的数据结构在使用方式中的剖析》

小傅哥

Java Netty 小傅哥

文章:为什么我们要放弃Subversion-InfoQ