Upcoming Perforce Feature: Shelving

Perforce announced on their blog that they have a new feature in beta testing called “shelve”. Great!

In short, “shelving” is taking a pending changelist and publishing it to the server without checking it into the depot.

As I mentioned in a previous post, this is one of the top features from git that was making me seriously consider checking it out. I started implementing this myself in my p4.exe wrapper, but I never gave it enough priority to get much work done. I’m excited to know that Perforce are adding it themselves. This is the first new feature I’ve seen from them in years that is worth upgrading for!

The things that interest me most about this ability are:

  • Easy trading of in-progress work in a formal, server-supported way that is done out-of-band of the depot, so it cannot break the rest of the team. Good for code reviews, small tests, moving the same pending changes among multiple machines/clients, etc.
  • Easy, incremental backup of works in progress. This is hot.
  • Easy ability to temporarily put aside a local change in order to work on something else that collides (typically as an emergency). This eliminates the main reason I needed to use several P4 clients on the same machine.

I hope Crucible will have support for this great new feature after it’s released. That would eliminate most of the need for the tool I wrote.

I’m looking forward to seeing this new feature in 2010.

3 comments on this post.
  1. Jeff Thompson:

    Have you had a chance to upgrade Perforce and tried shelving with Crucible? I’m hoping to get us upgraded to the latest p4 soon and try it out ourselves. We are also looking at integrating shelving in with our continuous build servers to allow automated testing prior to a submit. Should be fun! :)

  2. Scott:

    I wish! Bungie doesn’t use Perforce so I don’t know when I’ll get a chance to try this out.

  3. Jeff Thompson:

    I have been unable to get this to work with the latest version of Crucible. There is an issue open for Crucible on this as well. You can find it at:

    http://jira.atlassian.com/browse/FE-2355

Leave a comment





Want to paste some code into your comment? Just wrap it in [code] [/code]. Also, please note that off-topic or overly commercial comments will likely be removed at my discretion.