SysModeler — User Manual
SysML v2 projects support Git-style version control — commits, diffs, branches, merges, and conflict resolution — without leaving SysModeler.
By default version control is not enabled per project. After enabling it, all files can be tracked similar to a Git.
Only the project owner can initialize version control, and only once per project. This provisions a repository behind the scenes and performs an initial commit of all current files. From then on, each file carries a git status:
| Status | Meaning |
|---|---|
| Untracked | New file, never committed |
| Modified | Committed before, but changed since |
| Clean | Matches the last commit exactly |
Committing saves a snapshot of your current work with a message describing the change, building an audit trail of system modifications:
Ctrl + Enter). History updates and the lock releases.Caution — concurrency: If someone else is already committing, starting a commit is rejected and you're told who holds the lock. Abandoned locks expire automatically after a few minutes, so a branch never stays stuck.
Use the side-by-side Diff View to compare two versions or branches before merging — it details added, modified, and deleted code and model structures so you can review changes with confidence.
Branches let you develop in isolation without affecting the main model.
| Operation | Notes |
|---|---|
| Create branch | Fork from an existing branch to test features-architecture safely. Names use letters and hyphens only (max 100 chars). |
| Rename branch | Update the branch identifier. Cannot rename main. |
| Delete branch | Remove redundant/merged branches. Cannot delete main, the last remaining branch, or a branch other users are currently on. |
| Checkout branch | Switch your active branch; open files close and the target branch loads. |
| Merge branch | Integrate one branch into another (see below). |
The branch list updates live for everyone as branches are created, renamed, deleted, or merged.
To integrate one branch into another:
<<<<<<< current
...your version...
=======
...incoming version...
>>>>>>> incoming