DevJournal is a cross-platform tool for programmers that helps them be more purposeful and reflective about their work by tracking their edits and allowing them to save a collated, annotated history of their work session.
Software developers have long been aware of the benefits of using version control systems like CVS, Subversion, and Git to track and archive the changes to a program’s source code as they develop it. Version control systems provide peace of mind that committed work has been backed up. If it ever becomes useful to examine older versions of a particular file, a version control system provides this capability. The problem, however, is that most version control systems use a commit-based approach, where work is not copied into the system until the programmer manually triggers a commit.
This is where DevJournal helps. It automatically polls a directory structure in the background and tracks any file modifications (including creations and deletions), logging them with metadata into a time-sorted record. DevJournal also allows the developer to at any time add a “comment” to the log. The developer can also add a console dump, or any kind of text or file attachment (screen shots, for instance). All of this data is combined and presented in a single chronological record of the programming session.
My motivation for creating DevJournal stems from personal need. Occasionally I have programming sessions where I have short bursts of editing work interspersed with long down times for code compilation or test execution. During these down times, I usually check email and the web or work on a different project. Unfortunately, this context-switching frequently causes me to lose my place and forget what edits I’ve done and which approaches I planned to try next. I tried using the traditional pen and paper to do this, but found that without the actual code edits, it was difficult to reconstruct earlier versions of my files. I do use a version control system, but I didn’t want to have to make a commit every fifteen minutes; both because of the additional effort and because it would introduce an unacceptable level of disorder into the formal project record.
DevJournal bridges the gap between a filesystem-based “copy-on-write” backup system and a version control system. It allows me to track the changes I make and keep a record of them along with any relevant thoughts or console dumps for future reference. I’ve found that it has helped me to be more purposeful in my programming, and I’m less apt to repeat earlier mistakes or forget to make an intended edit. Since I suspect that other people deal with the same issues, I’ve decided to release DevJournal to the public as open-source under the GPL.
- Specify project folders with include/exclude regular expressions
- Automatically tracks file system changes (including creations and deletions)
- Records changes (including diffs when available)
- GUI to view/edit log
- Add comments, console dumps, and images or other files
- Merge/split events to desired level of detail
- Logs are automatically compressed to save hard drive space
- Cross-platform (written for Java 1.6+)