| English | Chinese |
FreeMind Hacking¶
FreeMind is my favorite notebook, I can not live without it. Everyday writting and searching using FreeMind.
- Sometimes I also write documents using other open document formats, such as DocBook or reST?.
WorldHello - my open document project (not update)
- All my document is version controlled. Previously I using CVS, Subversion, and latter switch to DVCS such as Mercurial(Hg), Git, …
WorldHello SVN Service (obsolete)
What is FreeMind?¶
References:
Why Hacked FreeMind?¶
Because it scratch my personal itch.
- Output of Chinese characters are encoded as XML entities, such as xx;. Which can not be easily recognized.
Compare different revisions is hard if all native characters are encoded like that.
- FreeMind saves contents and status infomation as attributes in .mm files, but some attributes have nothing to do with the real contents. These attributes make FreeMind documents hard to manage using a version controll system.
For example:
- Status of node folded or unfolded is saved in FOLDED attribute. If one does not change the contents of the node, but only change the folding status of nodes, the output file (.mm file) still has changes. This cause unnecessarily commit to version control system.
- Some attributes such as node create time, modified time are already managed by version control system, so there are no needs to save these attributes to mindmaps.
FreeMind is open source, makes the customization becoming possible.
Screen shot ¶¶

Source code¶
Freemind's version control system migrated from CVS to Git at 2011, so I also change the way for maintenance of FreeMind-MMX patches.
- In the early 2009, FreeMind-MMX source code is in Mercurial/Hg, and maintenance with the help of MQ.
- In 2010, FreeMind-MMX migrated to Git, and the patches are managed using Topgit.
At that time, I do not release the repository. It is because the repository is too big to push onto Github.
- While in 2011, FreeMind upstream repository migrated from CVS to Git, and I can share the patches again using a different and smart way.
Inspired by Android Repo, FreeMind-MMX topgit controlled repository split into 3 repositories:
- FreeMind Official Repository: git://freemind.git.sourceforge.net/gitroot/freemind/freemind
Notes: there is not '.git' suffix in the URL, If add a '.git' suffix, clone failed.
- FreeMind-MMX Manifest repository on Github: https://github.com/ossxp-com/freemind-manifest
- FreeMind-MMX Patches repository on Github: https://github.com/ossxp-com/freemind-hacks
- FreeMind Official Repository: git://freemind.git.sourceforge.net/gitroot/freemind/freemind
Download¶
Downlaod FreeMind-MMX from SourceForge:
http://sourceforge.net/project/platformdownload.php?group_id=253752
If you want the newest version, compile yourself as the following.
Compile from Source¶
You need Android Repo, but a hacked version!
It is because FreeMind Official Repository URL does not ending with '.git' suffix, but repo will add the suffix automatically. So a hacked repo is needed.
- Install hacked repo first:
$ 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
- Repo init from FreeMind Manifest repository.
$ repo init -u git://github.com/ossxp-com/freemind-manifest.git
- Repo Sync.
The FreeMind Official repository is big, so this step is a bit slower.
$ repo sync
- After repo sync, there is a script named 'build.sh'. Run it.
$ sh build.sh
- Built packages are under post directory.
$ ls post/
FreeMind-MMX Bug report.¶
Report under this platform.
How to use Redmine¶
See: Redmine User Guide (In Chinese)