2010年3月8日星期一

乱评 svn, git, hg, bzr (zz)

发信人: Dieken (风催草低 - 明月何尝不照人), 信区: LinuxDev
标  题: 乱评 svn, git, hg, bzr
发信站: 水木社区 (Mon Mar  8 22:47:14 2010), 站内

【 以下文字转载自 SoftEng 讨论区 】
发信人: Dieken (风催草低 - 明月何尝不照人), 信区: SoftEng
标  题: 乱评 svn, git, hg, bzr
发信站: 水木社区 (Mon Mar  8 22:44:54 2010), 站内

以前有些小文说过,不记得放哪里了。

这年头,堪用的开源的版本管理工具就三个:svn, git, hg,其它诸如
cvs, vss, monotone, darcs, tla, bazaar (emacs 项目选择 bzr 真是猪头) 
都靠边站:不堪大用——不要跟我抬杠“俺们 cvs 用了好多年了啊,用的
很顺手”“我个人一个小项目用 bzr 挺滋润的”之类的话。

subversion: 变更集、权限管理、TortoiseSVN 是其三大亮点。至于
文件名字空间跟分支、标签名字空间统一,有利有弊。 弊病是慢、
工作目录占空间、代码库很容易快速膨胀、分支的合并比较弱(分支
倒是非常好用)、svnsync 是个鸡肋。

致命的问题是不支持本地分支,在沐浴了 DVCS 中本地分支的优点后,
我现在强烈的感觉到不支持本地分支或类似特性的 VCS 是不人性的,
不合开发流程的。

如果项目不大(代码库小于 GB 量级),不想理解 DVCS 的理念,对权限
控制很看重,那么 svn 是唯一的选择。

git:  正是 git 让 DVCS 的理念普及开来,可能是借了 Linus 的名头,
git 的最大优点是特性极其丰富,非常可玩,而这也是它的最大缺点。
其它的一些缺点,比如对 Windows 支持落后、UI 有不少龌龊的地方、
权限控制薄弱(其实在 DVCS 里依赖社会关系管理权限,而非工具),
这些倒还不是大问题,大问题是对模块支持很弱,git submodule 不好用,
所以 android 项目搞了个 repo 工具,想法很好,但可惜不是 git 内置
功能,而且个人感觉由于为 android 项目定制,有点搞复杂了的意思。

相比 svn,git 代码库体积小(能小 50% 多,如果 svn 里分支用本地
文件拷贝 + svn add,那么 git 在体积上更占优势),git 工具速度
很快,对合并支持非常好,探测文件重命名的做法很独特,git-svn
很好用,分支很轻量级,设计思想很简洁(实现不简洁:-()。。。。

git 属于那种不熟悉时被它玩,熟悉时玩它溜溜转的类型。 如果不怎么
理 Windows 平台,代码很庞大,对合并要求很高,不惮理解 git 的原理
以及看手册,那么 git 是很好的选择。

hg:hg 是个奇迹,易用性堪比 svn,速度堪比 git,跨平台良好。
hg 据说对文件重命名、移动支持不大好(新版本可能改善了,没细用,
我是 git 的频繁用户),新版本支持类似 git 的轻量级分支(好像是
用 tag 模拟出来的),对模块支持有个 forrest 插件,不知道好用不。

hg 内置的特性远没有 git 多,但一般也够用了。

hg 被很多大型项目采用,可用性有保证,如果对跨平台开发很看重,对
工具易用性要求高,那么 hg 是很好的选择。

bazaar: 虽然是我比较喜欢的 Canonical 公司(Ubuntu Linux 的开发
公司)主持开发的,但我并不喜欢这个工具,速度慢,UI 挂着易用的
幌子引入不必要的复杂性,设计思想太弱(分支合并、版本命名、文件重命名、
移动跟 git 的做法比相当弱智),属于打着 DVCS 旗号但是没能完全
领会 DVCS 内涵搞出的一个伪 DVCS,代码库格式一再变换(开始模仿 git 的
存储方式了),效率还是低的不行,相比 git、hg 的基本稳定的代码库格式以及
高效,可见 bzr 开发人员只有小聪明没有大智慧(Linus 大神万岁,Matt 小神万岁!)


以上评论随口而出,极富个人感情色彩,本人不负责其客观公正真实可靠性,
仅供参考,一切选择请自行斟酌。

【 在 zhangmike (克强总~~~~~~~~~~~~~~理不是偶) 的大作中提到: 】
: Dieken可否总结下 git,svn等当前流行的source control工具的比较


--
OSS v4 vs. ALSA 大战,Linux 声音支持的未来?
OSS v4 支持混音了!

http://insanecoding.blogspot.com/2009/06/state-of-sound-in-linux-not-so-sorry.html
http://insanecoding.blogspot.com/2009/05/perfect-sound-with-oss-version-4.html
http://dieken-qfz.spaces.live.com/blog/cns!586D665C0DEB512D!605.entry


※ 修改:・Dieken 于 Mar  8 22:47:08 2010 修改本文・[FROM: 221.220.250.*]
※ 来源:・水木社区 newsmth.net・[FROM: 221.220.250.*]

没有评论: