?

Log in

No account? Create an account

February 11th, 2007

fedora 蓝色小药丸

这两天

周六晚上在图书馆,看到一本软件发布方法,《Software Release Methodology》。一本不错的书,花了我四个小时浏览了一下,讲到了很多以前没有想到的事情。

把源代码管理与特性/模块集成分离,合理安排测试的时间并加以统计。从很多软件项目中可以体会到与书中的做法相同/不同之处。我想 hellwolf 说 git 不是一个版本管理系统,而那位老兄说 bazaar 与其他版本管理系统的理念不同,都是有道理的。按照书中的说法,一个特性可能由多个 changeset 构成。如果在发布时可以容易地添加、撤销特性,那么对整个发布的掌握,以及测试的目的和质量都会有很大提高。

在简单的项目中,cvs/svn 的分支管理就已经足够了。但是,因为合并的过程非常痛苦,它们并不能“容易地添加、撤销特性”。相比 vss 而言,他们的长处对我们的项目并没有帮助。并且在 svn 中的两次提交是没有关联的(不能分组),因此将特性分解为多个 changeset 的做法会非常繁琐(手工记录)。

有一条推荐的做法:在将分支合并到主干时,先将主干同步到分支。svn 中有一条相应的推荐做法:多次同步的情况下,将上次同步的主干版本记录到日志里。我想,这与上面的内容是类似的,至少是有关联。假如一个特性包含的多个 changeset,针对的是同一分支的与不同主干版本同步的代码,那么添加、删除特性会比较讨厌..

zhllg 周日又提到他们用 svn 时的做法,竟然是在 svn 中保存二进制文件(源码的 tgz 打包)。他们的代码都交给一个人,由那个人审核并提交,而不是自行提交、合并。这样做的确很恐怖。看来,不同的公司对源代码管理有不同的理解。那本书里提到了类似的情况。我不敢说有什么不对。

update:
在 Perforce/ReleasePro 的网站上有一篇论文,讲到 SCM/RE 的一些模式。其中的一些可以用论文中给出的图示表示。先前看这篇文章没有看懂,现在感觉比较流畅了。http://releng.com/links.html 这里还有些链接,提到一本书叫做《SCM Patterns》,不知道怎么样,也许和那本 s-r-m 差不多。

看到一篇相关的文章 http://blog.csdn.net/szhlyh/archive/2006/12/06/1431768.aspx



周日, SZLUG 聚会,见到了传说中的 fundawang ,还有久违的 jungle, zhllg, rae, michael。新面孔有三位,最后我还请 zhlly 一起去了。她也算是 fedora 用户。

在那儿,新面孔中的一位嵌入式工程师带来的好东西最多。他先是给我们看了他用的 Mindmap。我总觉得 java 程序很难用,不过他看来很习惯。后来,在大家看龙芯盒子的时候,正想不通为什么 pmon2000 boot loader 不能暂停,他说,哦,应该是 usb 键盘的原因。换上 ps/2 键盘,果然如此。一下子表现出对这些这么熟悉,让人觉得他很厉害!


下次聚会不知道又是什么时候。据说很多人短期不会再到深圳了。
Tags: