FreeBSD终于换了git
FreeBSD 最近终于完成了从 subversion 到 git 的转换(其实还没算彻底完成,不过 src/ 和 doc/ 都已经完成了)。
我个人用 git 用了蛮久了,最早开始严肃地用 git 大概是2012年年底 Illumos 从 hg 换成 git 的时候的事情,当时 FreeNAS 的开发也从 subversion 迁移到了 git,后来,我们也把 FreeNAS 内嵌的 FreeBSD 的开发搬到了 git 上面。
共 12 篇文章。
FreeBSD 最近终于完成了从 subversion 到 git 的转换(其实还没算彻底完成,不过 src/ 和 doc/ 都已经完成了)。
我个人用 git 用了蛮久了,最早开始严肃地用 git 大概是2012年年底 Illumos 从 hg 换成 git 的时候的事情,当时 FreeNAS 的开发也从 subversion 迁移到了 git,后来,我们也把 FreeNAS 内嵌的 FreeBSD 的开发搬到了 git 上面。
📜 历史文件已不具备现实意义
FreeBSD 已经不再用 subversion 了。
今天有一位用户发信给 Release Engineering Team,要求在发行版中提供源代码的 svn checkout 工作副本,以便直接使用。我觉得这是个好主意,因为这样可以用更便宜的 FTP 流量来代替 svn 流量;不过,由于 re@ 内部有人担心这样会让光盘映像继续膨胀,因此我做了些测试来评估这样做的影响。
总共做了 7 个试验。
这次回北京之前的周末,FreeBSD安全团队发表了内部通知,发现 FreeBSD.org 有些机器被入侵,最近终于做了全面披露了。目前,基本的代码审计和攻击检查已经做完,部分机器还在重装的过程中。
对 FreeBSD 这样的开源项目来说,在基础设施遭到攻击之后,首先必须被怀疑的便是有可能有人在代码库中植入了新的后门。由于代码量十分巨大,逐行审计是非常不现实的。由于 FreeBSD 在 BSD 时代即采用了版本控制系统(最早 BSD 时代是 SCCS,FreeBSD早期是CVS,现在是 subversion),因此,每一行代码的来源,包括作者、具体的修改时间,以及为什么那样修改等等,都可以很容易地查找到。
Alan L. Cox 今天 commit 了 r240000。我记得刚换 svn 的那会才18到19万 revision 的样子。。。
FreeBSD 的 svn 代码库包括了从 1993 年 6 月 12 日到现在的全部 revision。与之前的 “n"cvs 不同(由于诉讼原因,FreeBSD 在 1994 年以 4.4-Lite 为基础重建了新的 cvs 代码库,也就是 2.x 和后来版本的 ncvs;早期代码库仍然可以在一些光盘出版物上找到),这套代码库包括了 FreeBSD 从一开始到现在的全部修订历史(不过,FreeBSD 2.0 之前的 tag 并未保留)。
配合 svn 使用 git 时可能会遇到许多问题,例如两个人分别做了 git svn clone,然后希望合并到同一个 git 库中。如何做合并呢?假定两个库分别是 old, new,将这两个库对应的分支和对应的源分支 (svn/*) 通过 .git/config 分别复制到不同的分支名字下面,例如 svn/releng/8.2 和 old-svn/releng/8.2。假定需要合并的分支是 old/my8.2,则做以下操作:
今天同事跑来问我为什么没办法checkout一个子目录,发现svn提示说某个目录已有既有的、未有版本的副本(这是一个新的checkout)。
删除重新checkout,问题依旧。
首次创建git库:git svn clone [svn代码库到HEAD分支的URL] [git代码库名]
例如,对于 FreeBSD,对应的URL为 http://svn.freebsd.org/base/head/
一般来说,从远程svn库复制需要的时间会比较长,也可以考虑首先在本地建立一份镜像,然后直接用 file:/// 去指定。
如题。
不过这一次因为-CURRENT code slush的缘故,应该不会在 8.0-CURRENT 里面引入了(Ed在svn里面建立了另一个branch来做)。我想从各方面考虑,9.0-RELEASE里面正式砍掉gcc那一套东西应该不会是很困难的事情。传统上 FreeBSD 的代码用到了很多gcc的扩展,因此可能还需要一段时间。
今天伟大的 A core 说起我blog上面一个很严肃的问题,tag cloud似乎只是罗列了字母序的关键词,一看果然如此,还不完整,也许是 MT 系统要惩罚一下我最近的懒惰了?
说说最近的事情,流水帐。
一件折腾了很长时间的事是,公司的 filer 终于在 6 月 25 日那天寿终正寝。了却了一件心事,以后就准备一直用server去代替了,据说 NetApp 原来和我们公司是在一个院里起家的,不管是不是真的吧,这台 filer 也算是见证了相当长一段时间的历史,到最后连 EBay 上面都买不到它用的硬盘了。
总而言之,值得纪念的一天(顺手把UDP mount都改成TCP mount了)。
Hans Reiser的案子判了,15年,在最后关头他供出了埋老婆的地方,奇怪的美国法律,为什么这样可以从一级谋杀改判为二级谋杀?从新闻报道看,这个家伙很倒霉,被一个人差点骗走了公司,并且把老婆也抢了,然而杀人……之前以为美国警察逻辑混乱,现在看来,老婆失踪立刻把老公控制起来还是对的,十之八九跟那家伙有关。不过真是很可惜,ReiserFS恐怕从此走向死亡了,一个相当有成就,而且有了两个娃的技术专家,最后居然因为杀人而锒铛入狱,真是一件非常可惜的事情。现在人都怎么了?
做了一个试验,导一个10万多revision的svn库进来到trac里面,结果整整一个上午过去了,才导了一半。估计得等到下班才能有结果了吧。。。