tig真好用

tig是git的浏览器,我一直用来看代码库的commits历史,今天仔细看了下manual发现很多有意思的功能,

视图切换:
在主界面按大写S可以察看当前分支的状态,按t打开文件树,在文件树上按B可以察看blame界面,按H显示本地分支,按l显示log summery,在commit上按d显示commit内容。

显示选项:
在察看commit的界面里按.可以切换行号。
在主界面按大写D可以调整commit日期显示。
主界面按A选择显示committer的方式

其他:
方便的cherry-pick,用H切换到别的分支,选中commit然后按大写C就能完成cherry-pick了!

修改Wordpress的Permalinks

不知道有多少人跟我一样讨厌Wordpress的Revision和auto-save,这两个功能在Wordpress的posts表里创建大量垃圾记录,即使我在wp-config.php里设置了:

define('WP_POST_REVISIONS', false);
define('AUTOSAVE_INTERVAL', 60000);

还是无法彻底消灭垃圾记录。其实这对性能啥的没什么影响,主要是种程序员的洁癖,本来我的posts表是整整齐齐按ID排序的,但Wordpress这么整以后,本来连续的ID全打乱了,我的Permalinks就是依赖ID的。

所以我决定把Permalinks改成年月日+postname的形式,这样看起来就没那么乱了。在这么做之前最好设置301转向,不然apache的记录里就全是404了。这个可以用.htaccess来实现,在Wordpress目录的.htaccess里加上:

RewriteEngine On
RewriteBase /
RewriteRule ^archives/([0-9]+)$ \?p=$1 [R]

这样原来http://log.dongsheng.org/archives/2重定向到http://log.dongsheng.org/?p=2,然后wordpress会把这个地址换成新的年月日形式。

更新:29/11/2010

还要再加一条规则重定向trackback:

RewriteRule ^archives/([0-9]+)/trackback$ wp_trackback.php\?p=$1 [R]

Moving to Git

如果一切顺利的话,Moodle会在这周把主代码库从cvs换到git,之前已经有几个子项目在用git协作了,这次迁移之后,标志着核心开发团队彻底抛弃了cvs。换版本管理工具绝对不是闲的蛋疼才干的事,工作将近三年实在是吃够了cvs的苦,缓慢的diff,古怪的$id:$,作为协作工具却没有解决团队开发的协作问题。

今天我们团队花了一整天研究git,发现迁移到git最大的难度是图形化工具的匮乏,Netbeans和Eclipse还没有正式发布的git插件,SmartGit算是最好的图形化工具的,但竟然不支持添加远程代码库(git remote),最后还是不得不通过命令行完成。对于初学者来说git那一大坨命令有点吓人,所以当我说用命令行做更快时,被人狠狠鄙视了,然后我用git命令,另一个同事用netbeans+smartgit比了下,任务是创建原始项目的clone,添加远程代码库,合并并推送。结果在他研究Netbeans测试版蹦出的那一坨Java异常的时候,命令行就搞定了,超级简单。虽然命令行的学习曲线比较陡,但利于开发人员彻底理解Git的工作方式,且不会被锁定到某个特定的GUI工具。