Skip to content

basemodo diff

Show what a Deploy changed in its App's code, file by file.

Terminal window
basemodo diff [OPTIONS] <DEPLOY> [OTHER]

Compares the Deploy's code with the code of the Deploy live just before it went live, so a Rollback shows what it undid; a Deploy that never went live is compared with the one live when it ended, and the App's first Deploy with no code. With a second Deploy of the same App, compares the first with it. Each file says whether it was added, changed or removed, or only its mode changed (executable or not), with the lines added and removed and its unified diff. Text files of up to 1 MB are compared line by line; a binary or larger file is too large to compare. A file moved is one removed and one added. A long diff is cut: the files past it are named, each to ask for alone with --path.

Arguments

  • DEPLOY (required): The Deploy whose changes to show (its id, from basemodo deploys).
  • OTHER: Another Deploy of the same App to compare it with. Default: the one live just before it went live (live when it ended, for one that never went live).
  • --path <PATH>: Compare only this file, or the files of this folder: how to see a file whose diff a long answer left out.

Like every command, it also takes the global options --json and --api-url.

Examples

Show what a Deploy changed (its id from basemodo deploys):

Terminal window
basemodo diff 0b8f6a52-3f0e-4c1e-9a57-5d1c2e7f9a10

Show what changed since an older Deploy:

Terminal window
basemodo diff 0b8f6a52-3f0e-4c1e-9a57-5d1c2e7f9a10 7c1d9e30-6a2b-4f8e-b1c5-3e9a0d2f4b67

Show one file a long diff left out:

Terminal window
basemodo diff 0b8f6a52-3f0e-4c1e-9a57-5d1c2e7f9a10 --path src/app.ts

Output

With --json, it prints {"deploy", "against" (the Deploy compared with, null for the first), "changes": {"files_added", "files_changed", "files_removed", "lines_added", "lines_removed"}, "files": [{"path", "status" (added, changed, removed or mode), "mode" (100644, or 100755 for executable), "previous_mode", "lines_added", "lines_removed", "diff", "too_large_to_compare", "left_out"}], "left_out": [paths whose diff the answer left out]}. A Deploy of another App, as either, is an error with code deploy_not_found; one whose code is no longer kept, code_not_kept.

From an agent

Basemodo's MCP serves it as the tool diff. It only reads, so an agent's client may run it without asking you. Its arguments are the command's, named as JSON keys: deploy (text), other (text), path (text). It answers what the command prints with --json.