Skip to main content
Shelves let you temporarily save workspace changes and restore them later, similar to Git’s stash. Shelves belong to a single repository but are not tied to any branch, you can create a shelf on one branch and apply it on another. Shelf names must be unique within the repository for each user and cannot exceed 60 characters. For all commands below, the <shelf> parameter can be either the shelf name or ID.

list

Lists all shelves in the repository.

create

Creates a shelf from your current workspace changes.
<name> is the name for your shelf. [paths...] is an optional list of specific files to shelve. If omitted, all changes are shelved. [--no-reset] keeps the workspace changes after creating the shelf. By default, changes are reset.

show

Shows the list of files contained in a shelf.

apply

Applies a shelf to your current workspace.
[--keep] preserves the shelf after applying. By default, the shelf is deleted. [-f] skips the confirmation prompt. If the shelved changes conflict with your current workspace, you’ll need to resolve the conflicts before continuing.

rename

Renames an existing shelf.

delete

Permanently deletes a shelf.
Use -f to skip the confirmation prompt. This action cannot be undone.

Example: carry changes across machines

Because shelves are stored in the cloud, you can use them to move uncommitted work between machines on the same repo:
For more information about shelving in Diversion, visit the Shelves page.