GIT Source Control for FileMaker? Meet DDRparser.

🔍 Intro:

FileMaker has always been a powerful platform for building business apps. But when it comes to understanding how a solution changes over time — which script was edited? what field was added? what layout changed? — things get murky fast.

That’s where DDRparser comes in: a free, command-line tool that splits FileMaker’s Database Design Report (DDR) into clean, searchable, text-based files. Combine it with tools like BBEdit, Sublime, and Git-auto-commit, and suddenly your FileMaker app behaves as a Git-tracked project.

If you are working on huge FileMaker solutions, the more important is to have tracking and searching available. For a huge implementation with lots of tables, layouts and script – The DDR report becomes quite big.

❌ I tested this with a customer solution where the DDR XML export was over 1 GB across four files. No browser could open the HTML version — not Safari, Chrome, or Firefox. Then our new DDRparser tool come to rescue – parsed the whole file in only 18 seconds, and searching become blistering fast.


🛠️ What It Does:

  • Parses FileMaker’s DDR (XML version)
  • Splits it into folders:
  • Scripts/, Layouts/, ValueLists/, MenuSets/, etc.
  • Each item is a readable .txt file — ready for search, comparison, or version control
  • Optional: Automatically creat GIT repo and commit to it for each run. Making it a true version control tool.
  • Works beautifully with:
  • BBEdit’s Multi-File Search
  • BBEdit or Kaleidoscope Find Differences
  • Shell tools like diff or git diff
NamePlatformDescriptionDownloadDocsMore
DDRparser 1.4.1Mac (Intel+Arm)

FileMaker tool for GIT integration, searching, and translations.

DownloadDocumentation
DDRparser 1.4.1Windows

FileMaker tool for GIT integration, searching, and translations.

DownloadDocumentation

🎁 What’s Included

  • MacOS: DDRparser CLI tool for macOS (signed, notarized)
  • Windows: DDRparser CLI tool for Windows (Code-signed)
  • A free license for all users
  • Optional GUI FileMaker APP to select paths and set options. Generates command to paste into a terminal window.
  • Read Me and License included

📸 Screenshots:

FileMaker DDR export dialog (showing “XML” selected)


Note this version is not yet compatible with “Save a Copy as XML…”, but we plan for that in the next major version. This version uses DDR XML format.

The GUI tool

  • Terminal running The DDRparser command with parameters.
  • The Folder structure after parsing

📁 Folder and File Structure – What’s Inside?

If your solution contains more than one FileMaker file, the output will include a folder for each file. These are named after each FileMaker file (without the .fmp12 extension). For example, in the screenshot above, Kimai is one such file, and underneath it are subfolders grouped by object type.

Here’s what each folder contains:

🧩 CustomMenus
Contains one file per custom menu. Each file lists the defined menu items, including associated actions and relevant parameters.

🧾 MenuSets
One file per menu set. A menu set is a collection of CustomMenus, so all related menus are included here. At the bottom of each file is a list of layouts that use the menu set.

🔣 CustomFunctions
One file per custom function, named after the function itself. Each file includes the function name, parameters, and full source code.

📜 Scripts
One file for each script in the solution. At the top of each file is a comment block with the script name and its group. All script steps are shown, with proper indentation for nested IfLoop, etc. Any calculations are shown in full for easy inspection.

📋 ValueLists
A single file: ValueLists.txt. This file lists all value lists in the solution, their contents, and relevant options or configurations.

🧱 Layouts
One file per layout. These files list all layout objects and their properties. The files are not intended to replicate the visual layout (use FileMaker’s layout editor for that), but they are extremely useful when searching for field names, text strings, or script references using multi-file search tools.

🔗 Relationships
A single file that lists all relationships in the graph, including source and destination tables, base table names, and join predicates. Especially useful for large, complex relationship graphs — instead of scrolling and zooming in FileMaker, you can search directly by name.

📂 BaseTables
One file per base table. Each file lists the fields within the table along with their properties. Calculated fields include the full calculation formula. It’s a great way to understand the data model and see what dependencies and calculations exist.

More Screenshots – Using the parser result

  • BBEdit with a multi-file search (e.g. searching for “ChatResult” across scripts)
  • BBEdit’s “Find Differences” between two exported DDR snapshots
  • GIT (Using GitHub GUI tool):

📂 Where to Get It:

✅ Use the download boxes near the top of the article for Mac or Windows version.


❤️ Why It’s Free:

This is a personal contribution from me, Ole Kristian Ek Hornnes at HORNEKS ANS, to the FileMaker community. It’s fast, native, and requires no plugins, no licensing, and no server to run.

The accompanying DDR-GUI FileMaker app uses the ACF plugin only for selecting files and folders. No ACF scripts are used—just built-in Plugin functions. A free license for the plugin is included, valid until September 1, 2025. After that, the plugin will still work for 30 minutes per FileMaker session, which is more than enough for this tool.


✍️ Closing:

If you’re working in FileMaker professionally, this will save you time, help with QA, and make team collaboration more transparent.

Feel free to share, send feedback, or contribute improvement ideas.

— Ole Kristian Ek Hornnes

You may also like...