All Collections

Applying changes

When the workspace is ready, buildprint apply pushes your committed local changes back to Bubble. It is the final step of the sync → edit → check → apply loop.

buildprint apply

What apply does

  1. Runs buildprint check in memory against the current worktree. Any error-level issues abort the apply.

  2. Auto-commits any uncommitted changes in the workspace with the message Apply from <appId>/<branch>. If you want different commit messages, commit before running apply.

  3. Diffs the committed state against the Bubble snapshot ref for the current branch, compiles a minimal set of Bubble /write operations, and sends them.

  4. On success, advances the local snapshot ref to match what Bubble now contains.

buildprint apply always emits a JSON summary. Shape: { ok, appId, branch, seconds, kind: "applied" | "unchanged", applied, summary? }. Scripts can rely on that line.

Positional args

buildprint apply <appId> <branch>

If you pass positional appId and branch, they must match the values inferred from the workspace. A mismatch fails immediately with a clear message - it is a safety net, not a way to redirect the apply.

What apply refuses to do

  • Apply from a workspace whose branch folder name doesn't match the checked-out git branch.

  • Apply with open error-level check issues unless --no-check is set.

  • Apply an obviously tiny local snapshot over a large workspace without --allow-large-apply.

When Bubble rejects the write

Bubble can refuse the write if the user has not granted permissions. This is only applicable within Buildprint sandboxes, where we enforce branch / editing permissions. If using the Buildprint CLI on your own local machine, we do not enforce editing or branch restrictions.

Previewing before applying

  • Use git diff and git status to review your local changes.

  • Run buildprint check (with --all if you want full coverage) to catch issues before apply.

Was this helpful?