Source Control
Semantic Modeler has built-in Git support for version controlling your semantic models. Click the Source Control icon in the activity bar to open the panel.
TMDL models produce the best Git experience - each object (table, measure, relationship, role) becomes its own text file, so diffs are clean and meaningful. BIM models (single JSON file) can also be version controlled, but reviewing changes in one large file is less practical.
The Source Control Panel
The panel shows the current branch at the top, with a toolbar for common operations (refresh, push, fetch) and a hamburger menu for additional actions.
Below the toolbar:
- Commit message - type your message and click Commit to commit staged changes.
- Staged Changes - files you've staged for the next commit.
- Changes - modified files that haven't been staged yet. Click a file to stage it, or click it to view the diff.
- Untracked Files - new files not yet tracked by Git.
Recent Commits
Below the file lists, the Recent Commits section shows your commit history with hashes, messages, and dates. Hover over a commit to see the full message, author, file change stats, and commit hash.
Commit Activity
A contribution chart at the bottom shows commit activity over the last 3 months.
Branches
The Branches panel (accessible from the left side) shows your local and remote branches. Right-click a branch to check it out, or create a new one from it. Use the search box to filter branches by name.
Commit History
Click a commit in the Recent Commits section to open the full Commit History view. This shows a visual branch and merge graph alongside each commit, making it easy to see how branches diverge and merge over time.
Diff Viewer
Click any changed file to open the diff viewer:
- Color-coded additions (green) and deletions (red)
- Only changed lines plus surrounding context are shown
- Unchanged sections are collapsed
Menu Actions
Click the hamburger menu in the toolbar for additional options:
| Action | What It Does |
|---|---|
| Pull | Pull changes from the remote repository |
| Push | Push your commits to the remote repository |
| Configure Remote | Set the remote repository URL |
| Git Identity | Configure your Git user name and email (runs git config) |
| Discard All Changes | Discard all uncommitted changes (use with caution) |
| Close Repository | Close the current Git repository |
Background Fetch
Semantic Modeler can periodically fetch from the remote in the background so your branch and ahead/behind info stays current. Configure this in Settings > General.
Tips
- TMDL is recommended for the best Git experience. Each object gets its own file, so diffs are clean and merges are easier.
- Commit frequently and use descriptive 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.