Command · Merge Projects
project.merge
Three-way merge of another copy of this project ("theirs", a project file) into this one, both edited from "base" (the file they started from): edits of different sequences, tracks or clips merge; the same thing changed differently on both sides is a conflict with a stable id.
- v1
- Capability EditProject
- Tool
project_merge
Request
{
"command": "project.merge",
"params": {
"base": "C:/Projects/Film (sent).wabcut",
"choices": [
{
"conflict": "clip:812",
"take": "theirs"
}
],
"theirs": "C:/Projects/Film (Alex).wabcut"
}
}Parameters
applyboolean- Apply even with unresolved conflicts (they keep mine). Default false.
basestringRequired- The common ancestor's project file.
choicesobject[]- How conflicts resolve (the others keep mine).
choices[].conflictstringRequired- A conflict's id.
choices[].take`mine` | `theirs`Required- Which side wins.
sequenceinteger (1..)- Sequence id; only needed when the project has several.
theirsstringRequired- Their project file (UTF-8 path).
Discussion
Three-way merge of another copy of this project ("theirs", a project file) into this one, both edited from "base" (the file they started from): edits of different sequences, tracks or clips merge; the same thing changed differently on both sides is a conflict with a stable id. With unresolved conflicts the result is only staged (the project does not change; the conflicts and what would change are returned) unless "apply"; "choices" resolves them ([{conflict: id, take: "mine" | "theirs"}]; unresolved ones keep mine). A merge that cannot give a valid project with those choices is staged too, with "invalid" saying why. One undo step.
Run it with wabcut-cli cmd <project> --json, from an MCP client as project_merge, or from an extension. See Edit commands for requests, references and results.
See also
project.*
- project.summary
Project Summary. Lists the project's sequences (id, rate, length, track and clip counts) and media counts.