使用git-svn获取历史悠久的代码

Jia.Liu@hellogcc

这年头你不git好像都不好意思跟人打招呼。
gcc是个svn项目,但是有git-svn可以用。
git svn clone svn://gcc.gnu.org/svn/gcc/trunk gcc
就可以clone出来了,以后你本地就是个git项目了。

但是,这样clone会非常非常慢,因为git需要获取版本信息,现在gcc这么多年了,版本信息?我估计你clone一星期能clone完就不错。

所以,我们可以不要那些很久之前的版本信息,先运行
svn info svn://gcc.gnu.org/svn/gcc/trunk
查看当前的版本号是多少。
Path: trunk
URL: svn://gcc.gnu.org/svn/gcc/trunk
Repository Root: svn://gcc.gnu.org/svn/gcc
Repository UUID: 138bc75d-0d04-0410-961f-82ee72b054a4
Revision: 175617
Node Kind: directory
Last Changed Author: gccadmin
Last Changed Rev: 175616
Last Changed Date: 2011-06-29 08:18:52 +0800 (Wed, 29 Jun 2011)

比如这个是175616,那么我们就可以运行
git svn clone -r175615:HEAD svn://gcc.gnu.org/svn/gcc/trunk gcc
来clone了。

!!!注意!!!
你指定的版本一定要小于175616,等于都不行!所以我用了-r175615。

该方法不适合考古人士。

从Lu申请maintainer被拒看什么是社区

Jia.Liu@hellogcc

今天下雨,回不去,随便写点儿盲人摸象的个人观点,解解闷,自娱自乐总行吧。

关于技术方面的东西,限于我的工作岗位,我能开放的不多,但是我已经把一些能够和大家分享的拿了出来,而且还会继续和大家分享。技术这玩意儿,你偷着藏着掖着,他也不会生出一窝小的来,反而会过时,无用。就像20年前吧(好古老的历史哦),gcc-2.95的时候,某玩意儿说gcc不行,我们比gcc强多了,我们要取代gcc。结果,20年过去了(一代人啊!一代人的青春啊!),我们gcc依然是世界的主流!为什么?因为我们是真正的开源项目!我们有一个真正的开源社区!我们是真正开放的社区!我们是真正公平的社区!

Lu说自己参与binutils和gcc开发20年了,想申请Linux/x86的maintainer。
iant说,不行,你是一个好的开发者,但是你从不review别人的patch,maintainer是对社区有责任的,你没有做到。
Lu说,我申请是因为DT_INIT_ARRAY问题一直得不到解决。
Jan说,这个问题存在很久了,我们在解决。(非常官方的回答哦。)

拒绝Lu可是需要勇气的啊,毕竟参与20年的老人了,而且还“代表”某特。但是,社区不在乎某个公司,某一个人,社区就是社区!是大家的社区!

让我们邪恶的猜想一下,Lu是因为看到很多maintainer的patch不怎么review就进去了,想自己的patch好进。
你可以说我没有根据瞎说,自己可以去check一下binutils的changelog,他的patch都是经过review并接受的么?
好在google的人开始申请binutils和gdb的帐号了,我们期待这两个社区变得越来越规范吧,为了全社区的利益,为了大家的利益。只有规范的社区才能带来更多的好处,如果你希望社区是有几个人控制的,那么我只能怀疑你动机不良,想作为“人治”的一分子,祸害社区的发展了。

这就是典型的权力欲望,只想享受权利,不想承担责任。没有意识到,一个人权力越大,责任也就越大。所以,他越远当不了蜘蛛侠。

OK,不扯了,什么才是社区?什么才叫社区!

gcc社区才是社区!所有的代码都是通过patch的形式,通过了maintainer的review才能进去的!不会因为某种原因走后门的,不会因为你跟某个maintainer关系好,他就接受你的patch,不会因为你是某个公司的,你就能左右patch是否被接受。

社区,是一个开放的,任何人都可以参与,只要你愿意,你真心给社区提交代码,做测试,找bug等等。

社区,是一个公平的,社区负责人(主要是maintainer),不能只享受权力带来的好处,而不负责任。不能为了一己私利而损害别人的利益,损害社区的利益。

社区,不是小圈子,只有某两个公司和某几个高校还有某个研究所的人才能参与,别人都靠边站。

你弄个伪开源的项目,弄个网站,自己管自己叫社区,那不行的,没有人参与,没有人承认你的。

社区是什么?是一个奉献和索取的平衡体,你只有奉献了你的精力,不仅仅是代码哦,还有文档,还有帮助他人成长。才能得到社区成员的尊重,经济利益就不用说了,哪个global都不缺钱的。
但是!社区的前提是公平开放的!RMS那老头子玩儿了一辈子,最后不做技术了,一直想制定一套相对公平开放的规则,为什么?
一个社区要发展壮大,不可能只为极个别的人服务的,社区要为全社区,甚至社区外的人都带来好处才行。
还有非常关键的一点就是开放!开放!开放!社区不是封闭的,封闭了就成了小圈子了,你一个小圈子最多伪装成一个社区,请不要侮辱“社区”这个字眼了,你们已经把“研究”和“专家”的字眼给侮辱了。
谢谢合作!

那么,最后,我们想想,自己是什么样的人呢?自己有资格参与社区开发么?自己的灵魂肮脏到不配参与社区么?自己是一个为了满足自己的权力欲望而祸害社区的人么?
gcc社区为什么这么红火?一天光patch就几十个。是因为gcc社区的制度?还是因为gcc社区的人?

一个人的能力和他的品德并没有直接关系的。

最后,我充分相信,我们大家都是高尚的人,纯粹的人,有道德的人,脱离了低级趣味的人,有益于社区的人。