[阅读: 413] 2006-01-21 14:17:45
bzr(Bazaar NG)又一个版本管理系统 panjy 提交于 2006-01-21 02:15 开源系统
开始关注 Bazaar-NG_ (bzr)这个分布式的版本管理系统,最初的原因有2个:
开始关注 Bazaar-NG (bzr)这个分布式的版本管理系统,最初的原因有2个:
这是Canonical公司支持的一个项目,也就是 ubuntu linux的发行公司
是python编写的
既然有subversion这样的集中式版本管理系统好东东,为什么还要这个产品呢?
进一步用下来,发现一些理由:
支持脱机工作,方便同步
这是一个 bzr用户的小故事
不过 subversion 上据说有一个svk,能够实现这个功能了
简单, 还是简单
看看这个 bzr初学者的happy经历 (我觉得这个故事是最佳的bzr入门教程)
不需要安装什么服务器,0管理
透明的存储格式
branche就拷贝操作(但会浪费空间?),提交版本不需要申请写权限(所有工作都在branch上完成)
不再需要那么长的url, 所有都是本地操作!!merge操作超级简单
如何定位版本:http://bazaar.canonical.com/BzrRevisionSpec
小核心,多插件的架构
bzr很容易加插件,很多高级特性都是以插件的形式提供的,这能够让核心快速前进。
有大量的 BzrPlugins , 其中 BzrTools 包括:
Push: rsync增量提交省带宽
Annotate: 显示每行是谁、什么时候修改的
Shelve/Unshelve: 比undo更强的undo,可指定回退什么修改!!这个是subversion难奢望的了
Clean-Tree: 清理不认识的东东,好像svn没有这个功能?
Graph-Ancesty: 使用 dot 图形显示版本历史
Shell: 支持自动完成拼写等超强功能的bzr命令解释环境
Patch: 加补丁
看到主页上介绍,可方便在上面编写和工作流相关的功能。这个倒使我觉得和Plone集成可能会比较方便。
疑问:
做一个分支,需要把整个版本库都拷贝下来。
这个有一点夸张,如果库很大,特别是二进制图片什么的,岂不非常耗时?
没有看到subversion的文件属性功能
没有看到好的web界面
个人觉得小的代码库用这个管理还不错,大的可能存在问题
虽然是分布式的,我觉得也还是应该学习subversion,做一个服务器,能够更好的支持增量版本提交(或者利用webdav的功能?)。
参考:
Drupal 也是采用Bazaa-NG管理代码 ,主要是方便代码贡献
采用分布式,还是集中式的版本管理:
bzr自己是这么组织开发的!
短小的教程
bzr 是 基于 bazaar 的,而 bazaar 又是基于 arch 的。
darcs 是另外一个更加成熟的分布式版本管理系统,但是采用比较怪异的Haskell语言编写 bzr 向 darcs 学习了很多,而且在继续学习。