Skip to content

Version Control

ScratchTrack has built-in version control, similar to Git. Every change you make is tracked, and you can branch, merge, and revert your song history at any time.

How It Works

Every edit you make — adding a track, recording a clip, adjusting volume, editing MIDI notes — is stored as an immutable event. These events are grouped into commits, forming a history that you can browse and navigate.

You never lose work

  • Every change is preserved as an immutable event
  • You can revert to any previous state
  • You can create branches to experiment without affecting your main version

Branches

Branches let you experiment with your song without affecting the main version.

Creating a Branch

  1. Click the branch dropdown in the toolbar.
  2. Select Create Branch.
  3. Type a name for your branch.
  4. Your new branch starts from the current state of the song.

Switching Branches

  1. Click the branch dropdown.
  2. Select the branch you want to switch to.
  3. The editor loads that branch's version of the song.

The Main Branch

Every song has a main branch. This is the primary version of your song. In shared songs, only the owner can make changes directly to the main branch.

Commit History

View the full history of your song:

  1. Click the History button in the toolbar.
  2. A modal shows all commits as a graph (DAG visualization).
  3. Click a commit to see what changed.

Commit history DAG

You can also browse the full list of commits with details including hash, parent commits, and events:

Version history list

Reverting to a Previous State

  1. Open the commit history.
  2. Find the commit you want to revert to.
  3. Select it to restore your song to that point in time.

Note

When viewing a historical version, the editor enters read-only mode — you can listen and browse, but not make changes. To resume editing, switch back to the latest state.

Merging

When you're happy with changes on a branch, you can merge them back into another branch.

Merge Preview

Before merging, ScratchTrack shows a preview of all changes:

Merge preview

Change Type Color
Added tracks Green
Modified tracks Orange
Deleted tracks Red
Moved clips Blue
Modified MIDI clips Listed with details

Selective Merge

You don't have to merge everything. The merge preview includes checkboxes so you can choose which changes to include.

Fast-Forward Merge

If no changes were made on the target branch since you branched off, ScratchTrack performs a fast-forward merge — the branch pointer simply moves forward. No conflict resolution needed.

Conflict Resolution

When both branches have changed the same thing (e.g., the same track's volume), a conflict occurs. ScratchTrack provides a conflict resolution interface:

  1. The conflict resolution view shows each conflict.
  2. For each conflict, choose:
    • Keep Local — Use your branch's version
    • Accept Remote — Use the other branch's version
  3. Once all conflicts are resolved, the merge completes.

Conflicts can occur on track properties (volume, name), clip positions, and other song attributes.

Split View

ScratchTrack offers a split view mode to compare two branches side by side:

  1. Click the Split View toggle in the toolbar.
  2. Select the branches to compare.
  3. Both versions display simultaneously for easy comparison.

Next Steps