# Compare Versions

## 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

{% stepper %}
{% step %}

### Select Branch File

In the Branches view, select a file from the left branch file list.
{% endstep %}

{% step %}

### Highlight the Active File Version

In the Version List, click the Active File Version.
{% endstep %}

{% step %}

### 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.
{% endstep %}

{% step %}

### Browse Changes

In the right sidebar, browse between different catagories and discover detailed code changes of Scripts and Custom Functions.
{% endstep %}
{% endstepper %}

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

{% embed url="<https://vimeo.com/1038622257>" %}
Track changes made to a development file
{% endembed %}

## What Changes Are Tracked?

This table shows what is currently tracked and displayed.

<table><thead><tr><th width="99">Category</th><th width="98">Level</th><th>XML Catalogues</th></tr></thead><tbody><tr><td>Code</td><td>Detailed</td><td>Line-by-line code diffs of <code>Scripts</code> and <code>Custom Functions</code></td></tr><tr><td>Database</td><td>Summary</td><td>Names of <code>Tables</code>, <code>Table Occurrences</code> and <code>Relationships</code> </td></tr><tr><td>Layouts</td><td>Summary</td><td>Name of <code>Layouts</code> </td></tr><tr><td>Security</td><td>Summary</td><td>Names of <code>Privileges Sets</code> and <code>Extended Privileges</code> </td></tr><tr><td>Other</td><td>Summary</td><td>Names of <code>Value Lists</code>, <code>Custom Menus</code>, <code>Custom Menu Sets</code> and <code>Themes</code> </td></tr></tbody></table>

## 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.

{% hint style="success" %}
This feature is actively being improved, and upcoming releases will eliminate the need to consider backup type when analyzing XML changes. Using a non-recommended backup type only affects XML analysis results — all other functionality remains unaffected.
{% endhint %}

### 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.

<table><thead><tr><th width="144">Platform</th><th width="176">Recommended Version Type</th><th>May Detect Incorrect Changes</th></tr></thead><tbody><tr><td>Windows Server</td><td>Clone</td><td>Full Backup</td></tr><tr><td>Linux</td><td>Full Backup</td><td>Clone</td></tr></tbody></table>
