Table of Contents

Source Control

Semantic Modeler has built-in Git support for both model formats. TMDL models (which create individual files per object) produce clean, meaningful diffs. BIM/TMSL models (single .bim file) can also be version controlled, though diffs on a single large JSON file are harder to review.

Click the Source Control icon in the activity bar to open the panel.

Why Git for Semantic Models?

When you save a model in TMDL format, each object (table, measure, relationship, role) becomes its own text file. This makes Git diffs meaningful. You can see exactly which measure changed, which column was added, or which relationship was modified.

Diff Viewer

The built-in diff viewer shows what's changed since your last commit:

  • Side-by-side or inline view of changes
  • Color-coded additions (green), deletions (red), and modifications (amber)
  • Only changed lines plus a few lines of context are shown; unchanged sections are collapsed

Staging and Committing

Use the source control panel to stage files and commit changes directly from within Semantic Modeler. No need to switch to a terminal or another Git client.

Branching

Create and switch branches from within the app. This lets teams work on different features or fixes in parallel without stepping on each other's changes.

Setup

Configure your Git identity in Settings > Git:

  • User name: Used as the author on commits
  • Email: Used as the author email
  • SSH key path: Path to your SSH private key for pushing to remote repositories

Tips

  • TMDL is recommended for the best Git experience. Each object gets its own file, so diffs are clean and merges are easier. BIM works too, but reviewing changes in a single JSON file is less practical.
  • Commit frequently and use descriptive commit messages. Your future self will thank you when you need to understand why a measure was changed three months ago.
  • Use branches for significant changes so you can review them before merging.