Blog

奇怪的 BZR 下载

几天前就知道了 Emacs 的代码仓库已经从 CVS 转到 BZR 上来了,但一直没有多像。今天突然想看看 BZR 里的 trunk 版本和 CVS 里的有没有什么不同。因为我目前用的 Emacs 是用的 CVS 里的代码编译的,不知道在 BZR 中的 Emacs 代码有什么更新呢?

我第一次听说 BZR 是在 2007 年下旬,中间一直没有实际 checkout 过 BZR 仓库里的代码。我平时自己的代码喜欢用 Git,与别人合作用的多数是 SVN,这两样基本上已经足够满足我的要求,也足够流行,所以我一直没有花时间去弄清楚 BZR 相对于这两个来说有什么不同。由于平时很少 checkout BZR 仓库里的代码,所以我连 BZR 客户端都没有装。今天想去下 Emacs 的代码,之后现下了一个客户端。

我首先下载的是 BZR 的源代码,需要用 Python 安装。不过我看里面有直接可以运行的可执行文件,就先用它试试。不知道是不是 Emacs 的 savannah 仓库的连接速度慢,还是 BZR 本身就慢,代码一直在下载中。说它奇怪是我看到下载的目录里面只有一个 .bzr 文件夹,而代码却不曾看见。我才应该是被放到什么地方缓存起来了吧。后来突然本子的风扇开始转了起来,我看了一下果然是 BZR 的这个 Python 进程的 CPU 使用百分比已经高了,由于正在上课,所以我只好杀死了这个进程。

中午的时候,我下载了 pkg 安装包,直接安装了二进制的 BZR,主要是想确保万无一失。于是又一次运行了 checkout 命令。当中经过了漫长的等待,终于风扇又开始转了。我这是查看了一下本地目录,还是一个文件没有。我猜是不是就在最后会把所有的缓冲的代码复制到本地目录里去啊。过了一会程序就运行完毕,果然文件都在本地目录里面,风扇自然也就不转了。看来我的猜测是正确的。

对于 BZR 的这种方式,我觉得不是很好。首先是界面太不友好了,命令行只提示了下载速度,而进度什么的都没有告诉。SVN 等工具会明确的显式正在下载的文件,这样下载是否正常也就一目了然了。而 BZR 的这种方式,在 checkout 像 Emacs 这种规模的代码时,就会让人觉得非常奇怪,也不知道下载是否顺利。而且在最后也会引起 CPU 使用过高的情况。

没有评论

Leave a Reply