Fossil 是我个人非常喜欢的一款开源版本控制软件,由 C 和 SQL 写成,包含版本控制、时间线显示、工单、维基、论坛等功能——是的,她内置了网页服务器——所有这一切包含在了一个便携的二进制文件里,小巧而惊艳。

Fossil 的操作思路比 git 简单得多,但是对于我这个记性不怎么样的人来说,能找到可用的 GUI 便是极好的。

于是,我找到了 Fuel(化石燃料笑出声

Fuel 看起来已经停止维护很久了,不过最后提交的代码已经实现了常见操作的可视化。

首先新建一个工作目录,然后 clone 一份代码到本地:

# fossil clone https://fuel-scm.org/fossil fuel.fossil

这一步操作的前提是你的电脑已经安装了 fossil 或者说手头有合适的二进制文件拷贝。与 git 的不同之处在于, fossil clone 后除了 URL 外还必须指定本地文件名,而 git 中可以忽略。当这一步操作执行完后,你的工作目录下会出现一个 sqlite 文件——是的,所有信息全都在这一个文件数据库里了。

之后从 fuel.fossil 中提取出工作文件:

# fossil open fuel.fossil

这样,源代码就从数据库中涌出来了。

我们需要为编译做一些准备。Fuel 依赖于 Qt5,其内置有一个小型浏览器,所以需要安装相应的包。对于 Arch 来说,需要安装 qt5-base>=5.4.0、qt5-webkit>=5.4.0;对于 Debian 来说,需要安装 qt5-default、qttools5-dev-tools、qtwebengine5-dev 等一众软件包。

完成之后还需要打个小补丁 (指当前版本) ,进入 src/ 文件夹,编辑

CommitDialog.cpp 文件,在文件上头加入头文件 QAction,完成以后看起来是这样:

#include “CommitDialog.h”
#include <QPushButton>
#include <QShortcut>
#include <QAction>
#include “ui_CommitDialog.h”
#include “MainWindow.h” // Ugly. I know.

这样就可以进行编译了。回到工作目录的根目录,对于 Debian ,执行:

# qmake fuel.pro

对于 Arch ,则是:

# qmake-qt5 fuel.pro

然后 make 一把梭,等他编译完。多核 CPU 的话可以添加 -j 充分利用资源。强迫症患者建议建个编译目录去编译。

总之,最后会生成一个叫 fuel 的二进制文件,给它可执行权限就可以使用了。

界面是全英文的,我在 transifex 上申请加入翻译,但是没有回应,可能作者真的弃坑跑路了。。。解决方案是自己翻译然后编进去,翻译源文件都在 intl/ 目录里,下载 Qt Linguist ,可以打开对照着翻译,src/ 内源文件与 fuel.pro 文件也均需微小改动。