Promote a Workspace
If the target branch has not moved since the workspace was created, promotion lands the workspace on that branch:--merge when Tensorlake should merge the workspace with the latest branch tip:
When Promotion Conflicts
If the workspace and branch changed the same content, promotion publishes nothing. The target branch and workspace stay unchanged, and the command reports each conflicted path:- Run
tl fs sync /work. - Edit the conflicted files.
- Snapshot the resolved files.
- Promote again.
Sync the Branch into a Workspace
tl fs sync pulls the target branch into the workspace. The mounted directory updates in place:
--fail-on-conflict when a conflicted sync should change nothing instead of writing markers. Use --target to pull from a branch other than the one the workspace was created from.
Shared Read-write Branches
On a shared read-write branch, every snapshot is merged into the branch automatically. Agents editing different files, or non-overlapping regions of the same file, usually merge cleanly. When two agents change the same content, the snapshot still lands with diff3 markers in the conflicted file and a structured conflict record on the commit. Any agent following the branch can resolve the markers by editing the file and snapshotting. Nothing is silently overwritten. Conflicted commits are flagged in the dashboard’s activity feed, and the record is queryable without parsing file contents:Merge Branches Directly
Usetl git merge when you want to merge one branch into another without creating a workspace.
Preflight first to see what would happen. It never writes:
--deep when you need exact text-merge results:
--preflight to land the merge:
--materialize to land it anyway with markers and a conflict record, the same contract as shared read-write branches. Add --json for machine-readable reports.
How Merging Runs
Merges run server-side with a three-way merge engine. Tensorlake does not clone the repository, check out a working tree, or scan every file. Merge cost scales with the number of changed paths, not total repository size.Conflict Kinds
Conflict reports classify each path:| Kind | Meaning |
|---|---|
content | Both sides edited the same region of a text file. |
delete_modify | One side deleted the path; the other modified it. The modified side is kept. |
add_add | Both sides added the path with different content. |
kind_mismatch | The path is a file on one side and a directory or symlink on the other. |
mode | Both sides changed the file mode to different values. |
too_large | A side is binary or over the text-merge size limit; never text-merged. |
Next Steps
Writable Workspaces
Mount, snapshot, and promote — the workflow merging builds on.
Architecture
How the merge engine and conflict policies work internally.