English Chinese

FreeMind Hacking

FreeMind 是我的最爱,我每天都在用 FreeMind 写文档或者查询我的知识库。

  • 我的 FreeMind 文档都用版本控制系统维护,以前是用 CVS/SVN/Hg, 现在使用的是 Git。

    WorldHello SVN Service (过时)

什么是 FreeMind?

参见:

为什么要对 FreeMind 进行增强和改动?

简单的说,因为 FreeMind 挠到了我的痒处。

  • FreeMind 的输出文档中,中文被编码,形如 &#x…; 根本无法直接识别;

    虽然一般用户不会直接用写字板查看 FreeMind 文件,但是当使用版本控制后,需要经常在版本间做比较,不能显示为中文,就太不方便了。

  • 浪费存储空间,较 UTF-8 编码,文件会大三倍左右。
  • FreeMind 将节点信息也保存在文件中,一些和内容无关的信息,如:节点的打开、关闭的状态,修改时间等保存在文件中。

    当没有改变任何内容,仅仅展开一个节点,文件就可能被改变。这对使用版本控制系统维护文档来说,是灾难。

感谢 开源! FreeMind 的开源的本质,让扩展称为可能。功能扩展后的 FreeMind 命名为 FreeMind-MMX,因为该增强版本的输出文件除了 *.mm 外,还有一个可以忽略的 *.mmx 辅助文件。

截屏图

源代码

2011年 FreeMind 的源代码版本控制由 CVS 迁移到 Git,相应的我也改变了 FreeMind-MMX 的维护方式。

  • 2010年用 Topgit 维护 FreeMind-MMX 代码,没有放到 Github 上是怕占用宝贵的 Github 托管空间。
  • 2011年 FreeMind 上游版本库由CVS迁移至 Git,为什么不用多版本库方式进行管理,即 Android repo 方式,这样就不会占用太多的推管空间。

    使用 repo 之后,我在 Github上Freemind 相关版本库占用甚至不到1M!

    • FreeMind 官方版本库地址: git://freemind.git.sourceforge.net/gitroot/freemind/freemind

      注意不能有 “.git” 后缀,如果添加后缀则无法克隆。

软件下载

可以从 SourceForge 下载群英汇增强的 FreeMind 版本。

http://sourceforge.net/project/platformdownload.php?group_id=253752

如果想得到最新版本,参见下面介绍的从源代码进行编译。

从源码编译

自己动手编译改进后的 FreeMind(即 FreeMind-MMX),要使用 repo 工具,会自动克隆三个 Git 版本库,再进行编译。

三个版本库分别是:

  • FreeMind 官方版本库: git://freemind.git.sourceforge.net/gitroot/freemind/freemind

    注意不能有地址不能有 “.git” 后缀,如果添加后缀则无法克隆。

使用 Repo 工具进行 FreeMind-MMX 的编译过程如下:

  • 使用我改进的 repo,因为官方的 repo 自动给版本库URL添加 ".git" 后缀,导致克隆官方 FreeMind 的Git代码库失败。
        $ mkdir workspace
        $ cd workspace
        $ sudo curl -L -k http://github.com/ossxp-com/repo/raw/master/repo \
            > /usr/local/bin/repo
        $ sudo chmod a+x /usr/local/bin/repo 
    
  • 使用 Github 上的 FreeMind Manifest 库进行初始化。
        $ repo init -u git://github.com/ossxp-com/freemind-manifest.git
    
  • 同步版本库,包括 SourceForge 上的 FreeMind 和 Github 上的 freemind-hacks。

    这一步骤时间可能会很长,因为 SourceForge 上 FreeMind 代码库太大(50M)。

        $ repo sync
    
  • 完成同步后,在当前目录下有一个 build.sh 脚本,执行它完成改进版本 Freemind 的编译和打包。
        $ sh build.sh
    
  • 打包后的文件在 post 目录下。
        $ ls post/
    

FreeMind-MMX 问题报告

遇到问题,点击“新建问题”报告。

什么是 Redmine

本网站用 Redmine 构建,用于 FreeMind-MMX 的项目管理。
参见:Redmine 帮助

mmx_settings_cn.png (28.8 kB) 蒋 鑫, 04/12/2011 12:02 pm