Skip to main content

upgrade-diff

Install a new version of the template and create a diff. The command bootstraps two throwaway projects (a base and a target version) in a temp directory, syncs the target over the base, and commits the result so the upgrade shows up as a plain git diff. Useful to see what changed in the template between two Archibald versions before upgrading a real project.

archibald upgrade-diff|ud [options]

Run without options for an interactive prompt, or pass them directly.

Options

OptionDescription
-b, --base [version]Version to base the diff off. Default: latest.
-t, --target [version]Version to run the diff against. Default: next.
-tpl, --template [name]Template to install: shop or basic. Default: shop.
-f, --forceForce recreation if the temp projects already exist.
-q, --quietDon't use the interactive cli; run with default options.
-h, --helpShow help commands.

How it works

  1. Creates two projects in the OS temp directory (<tmp>/archibald/BASE_<base> and <tmp>/archibald/TARGET_<base>) via npm create @archibald@<version>.
  2. Initializes a git repository in the base project and commits it as "current version".
  3. Syncs the target project over the base (rsync --delete, excluding .git) and marks the directory as diffed.
  4. Shows the resulting git status and offers to open the diff in VS Code.

A previously generated diff is reused unless --force is passed.

info

The command can only be used on Unix systems or WSL — it is not supported on native Windows.

Example:

archibald upgrade-diff -b 8.6.0 -t 9.0.0 -tpl shop