Compare Versions

Track changes with the built-in XML Analysis API

Overview

The Compare Versions feature provides FileMaker developers with a powerful way to track changes in their FileMaker solution files. By comparing the Active Branch File with the latest saved version on the same branch, this tool highlights changes in a clear, summarized format. Detailed code diffs for Scripts and Custom Functions are currently supported, with broader change tracking in development.

Guide

1

Select Branch File

In the Branches view, select a file from the left branch file list.

2

Highlight the Active File Version

In the Version List, click the Active File Version.

3

Run Analysis

Manually: In the right sidebar, click the Run Analysis or refresh button. Automatically: Automatic change tracking can be enabled in Project Settings -> Versions.

4

Browse Changes

In the right sidebar, browse between different catagories and discover detailed code changes of Scripts and Custom Functions.

This video shows how the Devin App can track changes made to a development file:

Track changes made to a development file

What Changes Are Tracked?

This table shows what is currently tracked and displayed.

Category
Level
XML Catalogues

Code

Detailed

Line-by-line code diffs of Scripts and Custom Functions

Database

Summary

Names of Tables, Table Occurrences and Relationships

Layouts

Summary

Name of Layouts

Security

Summary

Names of Privileges Sets and Extended Privileges

Other

Summary

Names of Value Lists, Custom Menus, Custom Menu Sets and Themes

Hardware Requirements

The Compare Versions feature is exclusive to Development Server installations and requires significant memory resources for optimal performance:

  • Solo Developers: 8GB of memory.

  • Teams with Concurrent Development: At least 16GB of memory.

Built-in safeguards prevent memory overload, but enabling auto-tracking for teams with heavy activity may demand higher server capacity.

Current Limitations and Known Issues

In Devin 1.3.0, comparisons are limited to the Active Branch File versus the latest saved version on the same branch. This is currently a UI limitation and will be expanded in a future release to support comparing any version across any branch.

While powerful, this feature has a few current limitations and best practices to ensure it works correctly. If the App Sidebar shows an Analysis Error, it may be due to one of the following reasons.

Empty XML Catalogues

Comparisons might fail if either the Active Branch File or the Reference File it's compared to has empty XML catalogues, such as if the file has no Scripts, Custom Functions, Custom Menu Sets etc. Therefore, this feature works best with existing fmp12 files since new files by default has empty XML catalogues.

Discovering error logs such as An error occurred: 'custom_menu_sets_xml' or Error running operation: 'custom_menu_sets_xml' in the {opt/Program Files}/Devin/Logs/service.log file indicates that no Custom Menu Sets exist in the file. To resolve temporarilly, create an empty Custom Menu Set, or equivalent, for other XML catalogues.

Analysis Performance: Linux vs. Windows

This feature is compute-intensive, both in its core analysis logic and through concurrent use of several FileMaker CLI tools. Performance is typically 5–10 times faster on Linux servers compared to Windows Server.

System Locale and Version Type Behavior

The accuracy of XML change detection in Devin Server is affected by both the system locale settings, field storage options and the type of FileMaker backup used. If the system locale differs between FileMaker Pro and FileMaker Server, or if fields use a default storage language that doesn’t match the server’s configuration, false table changes may be detected. Depending on the server platform, either Clone or Full Backup versions may be more reliable. Using the non-recommended backup type may result in incorrect change detections, particularly in tables and scripts involving language or decimal formatting.

Platform
Recommended Version Type
May Detect Incorrect Changes

Windows Server

Clone

Full Backup

Linux

Full Backup

Clone

Last updated

Was this helpful?