We use modified version of sync
https://github.com/ten0s/sync that
supports releases, detects new files, and monitors changes in include
files (at least it should, don't use this feature often) as far as the
next requirements are met:
1. Make sync somehow available to your release. Include it into your
release or put it in the erlang libs.
2. Build the project with debug_info.
3. Remove {debug_info, strip} from reltool.config
4. Add {excl_archive_filters, [".*"]} to reltool.config
5. Start sync:start() before making any changes.
6. Disable any growl notifications (optional)
We also edit files in emacs with flymake mode enabled using custom
erlang syntax checker for *.erl, *.hrl, *.config files
https://github.com/ten0s/syntaxerl
In general our workflow is:
1. Build the project with rebar
$ make
2. Start it in the console mode
$ make console
3. Start sync
> sync:start().
4. Now start edit files. Whenever flymake says that the file is OK
pretty soon sync will reload it. This workflow works fine until you need
to make big changes like adding a child to a supervisor or make a new
application. In this case go to point 1 and start over.
Hope this helps.
--
Best regards,
Dmitry Klionsky