Helix Core is now P4. Product user interfaces will be updated soon. Learn more >>

P4 for Visual Studio Documentation | 2025.2

# Shelve files

Shelving enables you to store copies of open files temporarily in the P4 Server repository without checking them in. Shelving is useful for a variety of purposes, including taking and restoring snapshots of in-progress work and reviewing other users' code before it’s checked in. When you shelve a file, a copy is placed in a pending changelist from which other users can unshelve it. Pending changelists that contain shelved files are indicated by a red triangle marked by a file icon: . When the changelist is expanded, shelved files are listed under the Shelved Files node. They are indicated by a file icon with a badge, for example: . The badge can be a check mark, an X, a plus sign (+), or an integration arrow, depending on the pending action before shelving.

When managing shelved files, note the following:

- Basics: To be shelved, a file must be checked out. However, you cannot unshelve a checked-out file.
- Submitting shelved files: You can submit a shelved file directly.
- Managing changelists: You cannot move a shelved copy to another pending changelist. If you revert a file after shelving it, the copy remains shelved in the changelist until you delete it. Only the changelist owner can reshelve or delete files that are shelved in the changelist. You can submit shelved files directly, but your changelist must contain only shelved files.
- File history: No file history is created when you shelve or unshelve files.
- Diffing: You can diff shelved copies by right-clicking the shelved file in the Pending dialog (View > Pending Changelists) and selecting Diff Against Source Revision or Diff Against Workspace File.

In this section:

Your search for returned results